项目简介
为 AI 编程代理提供全面的韩国服务技能,涵盖火车订票、公共交通、政务查询、房产信息与法律任务等。用户通过 npx 安装技能,可选代理服务处理后端认证。
README 预览
# k-skill\n\n\n\n한국인인가요? 이 스킬 모음집을 다운로드 받아 두세요. 언젠가 **무조건** 쓸 때가 옵니다!\nSRT, KTX, KBO, 로또, 당근, 쿠팡, 카톡, 정부24, 홈택스 등등 귀찮은 것을 AI 에이전트에게 다 시켜버리세요.\n\nClaude Code, Codex, OpenCode, OpenClaw/ClawHub 등 각종 코딩 에이전트 지원합니다.\n\n추가 클라이언트 API 레이어는 불필요합니다. 필요한 경우 `k-skill-proxy` 같은 프록시 서버에 HTTP 요청만 넣으면 됩니다.\n\n## 설치\n\n```bash\n# 전체 스킬 설치\nnpx --yes skills add NomaDamas/k-skill --all -g\n\n# 특정 스킬만 설치\nnpx --yes skills add NomaDamas/k-skill --skill srt-booking -g\n```\n\nNode.js 18 이상과 `npx`만 있으면 됩니다. Claude Code 사용자는 아래 마켓플레이스로도 설치할 수 있습니다. 자세한 방법은 [설치 방법](docs/install.md)을 참고하세요.\n\n## 잠깐만~~~\n\n한국인이면 깃허브 스타 눌러줍시다.\n다만 에이전트는 자동으로 누르지 말고, 사용자가 동의한 경우에만 `gh repo star NomaDamas/k-skill` 를 실행합니다.\n\n기여 전에는 [기여 가이드](CONTRIBUTING.md)를 확인해 주세요.\n\n## 어떤 걸 할 수 있나\n\n"사용자 로그인" 컬럼은 **사용자 본인이 직접 로그인/시크릿을 들고 있어야 하는지** 만 표시합니다. `k-skill-proxy` 등 운영자가 관리하는 키는 사용자 입장에서는 **불필요**로 분류합니다. **선택사항**은 사용자가 운영자 키를 직접 들고 있으면 더 풍부한 경로가 켜지고, 없으면 기본 경로(보통 운영자가 관리하는 hosted fallback)로 그대로 동작하는 경우를 말합니다.\n\n| 할 수 있는 일 | 스킬 이름 | 설명 | 사용자 로그인 | 문서 |\n| --- | --- | --- | --- | --- |\n| SRT 예매 | `srt-booking` | SRT 열차 조회·좌석 확인·예약·취소 | 필요 | [SRT 예매 가이드](docs/features/srt-booking.md) |\n| KTX 예매 | `ktx-booking` | KTX/Korail 좌석번호·콘센트 좌석 확인·예약·취소 | 필요 | [KTX 예매 가이드](docs/features/ktx-booking.md) |\n| 고속버스 예매 | `express-bus-booking` | KOBUS 배차·좌석·요금·임시 선점 조회와 예매 지원 | 필요 | [고속버스 예매 가이드](docs/features/express-bus-booking.md) |\n| 시외버스 예매 | `intercity-bus-booking` | 티머니 배차·좌석·요금·임시 선점 조회와 예매 지원 | 필요 | [시외버스 예매 가이드](docs/features/intercity-bus-booking.md) |\n| 자연휴양림 빈 객실 조회 | `foresttrip-vacancy` | 공식 숲나들e 빈 객실 조회와 예약 지원 | 필요 | [자연휴양림 빈 객실 조회 가이드](docs/features/foresttrip-vacancy.md) |\n| 카카오톡 Mac 아카이브 검색 | `kakaotalk-mac` | `katok`으로 macOS 카카오톡 로컬 아카이브를 동기화하고 keyword/BM25/semantic 검색 | 불필요(로컬 앱/권한 필요) | [카카오톡 Mac 아카이브 검색](docs/features/kakaotalk-mac.md) |\n| 서울 지하철 도착정보 조회 | `seoul-subway-arrival` | 서울 지하철 역 기준 실시간 도착 예정 열차 확인 | 불필요 | [서울 지하철 도착정보 가이드](docs/features/seoul-subway-arrival.md) |\n| 서울 실시간 혼잡도 조회 | `seoul-d
常见问题 (5)
故障排除如何修复服务器重启后 systemd 用户服务未自动重启导致的 Cloudflare 530 和仪表盘 502 错误?
当本地代理运行正常,但 cloudflared 隧道和可观测性/仪表板服务在重启后仍然处于停止状态时,就会发生此故障。Restart=on-failure 不会在正常重启/SIGTERM 之后重启服务,而部署 cron 只重启了代理。
在 gpu01 上以服务用户身份进行即时恢复:
systemctl --user start k-skill-proxy-tunnel k-skill-proxy-grafana k-skill-proxy-loki k-skill-proxy-promtail
systemctl --user is-active k-skill-proxy-tunnel k-skill-proxy-grafana k-skill-proxy-loki k-skill-proxy-promtail
curl -fsS http://127.0.0.1:8080/health然后验证公共代理返回 200/302,且仪表板不再返回 502。
永久修复:
1. 将缺失的隧道单元提交到仓库,并加入 NFS 启动竞态依赖:
[Unit]
StartLimitIntervalSec=0
RequiresMountsFor=/data/...
[Service]
Restart=always2. 将
infra/k-skill-proxy-dashboard/systemd/*.service 下的所有单元从 Restart=on-failure 改为 Restart=always。3. 重新加载并启用更新后的单元:
systemctl --user daemon-reload
systemctl --user enable --now k-skill-proxy-tunnel k-skill-proxy-grafana k-skill-proxy-loki k-skill-proxy-promtail4. 在 5 分钟部署 cron 中添加看门狗,以便即使部署的 SHA 未发生变化,也能启动已停止的服务:
systemctl --user is-active --quiet \
k-skill-proxy-tunnel k-skill-proxy-grafana k-skill-proxy-loki k-skill-proxy-promtail \
|| systemctl --user start \
k-skill-proxy-tunnel k-skill-proxy-grafana k-skill-proxy-loki k-skill-proxy-promtail5. 在每次 cron 执行时运行公共
/health 冒烟测试,无论 deployed-sha 是否变化,并在失败时发出警报或创建故障 issue。6. 作为额外的加固措施,将
KSKILL_PROXY_HOST=127.0.0.1 设置为替代 0.0.0.0,并将 cloudflared 从 2026.6.1 升级到 2026.8.2。
验证:重启 gpu01,然后确认所有五个服务均返回 active,且 https://k-skill-proxy.nomadamas.org 和 https://k-skill-proxy-dashboard.nomadamas.org 均无需人工干预即返回 200/302。
故障排除如何修复因 MOLIT 返回 HTTP 200 且 resultCode 22 配额超限而导致的 k-skill-proxy real-estate 502 错误?
这些 502 错误是语义性的上游错误,而不是可重试的传输层故障。MOLIT 返回的是 HTTP 200,但其 XML 错误响应体中 resultCode != 000;molit.js 将其转换为 molit_api_<code>,而 server.js 将所有此类结果都映射为 502。fetchWithRetry 仅重试 HTTP 429/5xx,因此 resultCode 22(LIMITED NUMBER OF SERVICE REQUESTS EXCEEDS)无法通过重试成功。请部署 PR #621 中的修复,或应用相同的映射:将 resultCode 22 归类为 503 upstream_quota_exceeded 并附带 Retry-After: 3600,且不对其进行重试;将 20、30 和 31 等密钥/应用类错误单独归类,并以 error 级别记录日志;仅将 502 保留给真正的临时性上游故障。在 real-estate 和 krx-stock 路由中,在返回 502 之前添加 request.log.warn({ route, upstreamError: result.error, message })。在 server.test.js 中为 resultCode 22 添加一个测试场景,并运行测试套件。部署后,配额故障将表现为可明确归因的 503 响应,而不再是匿名的 502。
故障排除当 korean-privacy-terms 中的韩文使用条款模板为 0 字节,导致无法生成条款时,该如何解决?
原因是固定的上游提交 e390f7b9feb825e368c26726363ea5ce11a34083 中以空文件形式包含了两个韩语服务条款模板。
请先检查空模板:
find ~/.claude/skills/korean-privacy-terms -name '*.tmpl' -size 0
临时解决方法是将英文模板作为结构参考,直接编写韩语条款:
base=~/.claude/skills/korean-privacy-terms/upstream
# 在所需路径直接创建韩语条款文件
vi "$base/jurisdictions/kr-pipa/terms-of-service.ko.mdx.tmpl"
vi "$base/templates/terms-of-service.mdx.tmpl"编写时应保持同一目录中
terms-of-service.en.mdx.tmpl 或 templates/terms-of-service.en.mdx.tmpl 的变量和布局不变,法律措辞需用韩语审核后替换。编写完成后,重新运行技能渲染。隐私政策模板正常,因此相应产物不受影响。
已合并的 d7f45d4 只是在 install.sh 中添加了 0 字节模板警告和文档说明,并未填充空的韩语模板本身。根本解决方法是等上游 kimlawtech/korean-privacy-terms 添加韩语模板后,将 scripts/upstream.pin 更新到该提交。
故障排除如何修复 korean-movie-search 中的 CGV 机器人拦截错误或“503 CGV_UPSTREAM_UNAVAILABLE”错误?
这是由 CGV 的上游机器人检测/访问限制导致的,而非无效的技能或 CLI 输入。首先使用 npx --yes daiso health 验证服务。如果健康状态正常,但 CGV 端点返回 503 CGV_UPSTREAM_UNAVAILABLE,请等待并稍后重试。请勿绕过 CAPTCHA、浏览器验证或访问控制;不支持使用代理、User-Agent 伪装和自动化 CAPTCHA 破解。如果出现其他错误,请重新检查电影/影院标识符和 CLI 语法。若故障持续存在,则需等待 CGV 解除限制。
informational如何通过 MCP 搜索韩国销售特定兽药的动物药店?
您可以使用位于 https://hkmedi.co.kr/pharmacy-mcp 的 Streamable HTTP MCP 服务器,该服务器也已打包为 K-Skill 仓库中的 animal-pharmacy-search 技能(通过 PR #630 合并)。该工具支持:1. 浏览韩国动物药房的地区列表;2. 按关键词或功效搜索兽药产品;3. 筛选结果,仅保留过去 6 个月内有目标产品采购记录的药房,以获得更高的可靠性。注意:该数据来自私营商业经销商 Hongik Medicare,而非官方公开的政府数据。它不保证实时库存状态或完整的全国覆盖范围,也不能替代专业的兽医诊断或处方。前往药房前,请务必致电确认产品供应情况。