Files
nomadamas__k-skill/kbo-results/SKILL.md
Jeffrey (Dongkyu) Kim 720964cf49 Prepare k-skill for packaged releases and broader skill discovery
This snapshots the current repository updates as a coherent release-prep
baseline: workspace/package scaffolding, release automation docs and
workflows, refreshed skill/setup documentation, roadmap expansion, and
the README thumbnail polish.

Constraint: Node packages in this repo must use npm workspaces and Changesets for releases
Constraint: Python release automation stays scaffold-only until a real package exists
Rejected: Split the current work into multiple commits | user asked to commit the current changes together
Confidence: medium
Scope-risk: moderate
Reversibility: clean
Directive: Keep release docs, workflows, and package metadata aligned when adding future packages
Tested: npm run ci
Not-tested: GitHub Actions execution on remote after push
2026-03-25 23:57:53 +09:00

2.6 KiB

name, description, license, metadata
name description license metadata
kbo-results Fetch KBO game schedules and results for a specific date with the kbo-game npm package. Use when the user asks for today's KBO games, yesterday's scores, or a date-specific scoreboard. MIT
category locale phase
sports ko-KR v1

KBO Results

What this skill does

kbo-game 패키지로 특정 날짜 KBO 경기 정보를 가져와 경기 일정, 스코어, 상태를 요약한다.

When to use

  • "오늘 KBO 경기 결과 알려줘"
  • "어제 한화 경기 스코어 보여줘"
  • "2026-04-01 KBO 일정 정리해줘"

Prerequisites

  • Node.js 18+
  • npm install -g kbo-game

Inputs

  • 날짜: YYYY-MM-DD
  • 선택 사항: 특정 팀명

Workflow

0. Install the package globally when missing

npm root -g 아래에 kbo-game 이 없으면 다른 구현으로 우회하지 말고 전역 Node 패키지 설치를 먼저 시도한다.

npm install -g kbo-game

패키지가 없다는 이유로 다른 비공식 scoreboard 소스를 자동 채택하지 않는다.

1. Fetch the date

GLOBAL_NPM_ROOT="$(npm root -g)" node --input-type=module - <<'JS'
import path from "node:path";
import { pathToFileURL } from "node:url";

const entry = pathToFileURL(
  path.join(process.env.GLOBAL_NPM_ROOT, "kbo-game", "dist", "index.js"),
).href;
const { getGame } = await import(entry);

const date = "2026-03-25";
const games = await getGame(new Date(`${date}T00:00:00+09:00`));
console.log(JSON.stringify(games, null, 2));
JS

kbo-game@0.0.2 기준 실제 export는 getGame 하나이며, 문자열 날짜("2026-03-25")를 직접 넘기면 실패한다. 항상 Date 객체로 변환해서 호출한다. 전역 설치를 기본으로 쓰므로 inline snippet에서는 전역 npm root 아래 entry file을 직접 import 한다.

2. Normalize for humans

원본 데이터를 그대로 던지지 말고 아래 기준으로 정리한다.

  • 홈팀 vs 원정팀
  • 진행 상태 또는 경기 종료 여부
  • 스코어
  • 필요한 경우 특정 팀만 필터링

3. Keep the answer compact

사용자가 scoreboard를 원하면 경기별 한 줄 요약부터 준다.

Done when

  • 날짜 기준 전체 경기 요약이 있다
  • 팀 필터 요청이면 해당 팀 경기만 남아 있다
  • raw JSON이 필요하면 별도로 제공할 수 있다

Failure modes

  • KBO 사이트 변경으로 패키지 응답이 깨질 수 있다
  • 비시즌 날짜는 빈 결과가 올 수 있다

Notes

  • 이 스킬은 조회 전용이다
  • 사용자 기준 "오늘/어제" 같은 상대 날짜는 항상 절대 날짜로 변환해서 실행한다