# What Are the Dependencies for k-skill? Complete Monorepo Dependency Guide

> Explore the k-skill dependencies. This guide details npm workspaces, root level and individual skill package requirements, including Playwright and Fastify.

- Repository: [NomaDamas/k-skill](https://github.com/NomaDamas/k-skill)
- Tags: how-to-guide
- Published: 2026-08-04

---

**k-skill uses npm workspaces with zero runtime dependencies at the root level; each skill package declares its own dependencies, with browser-automation skills relying on `playwright-core` and the proxy server using `fastify`.**

The **k-skill** repository by NomaDamas is a monorepo containing dozens of independent skill packages for automating Korean public services. Unlike typical Node.js projects, k-skill's root [`package.json`](https://github.com/NomaDamas/k-skill/blob/main/package.json) contains no runtime dependencies—only workspace configuration and development tooling. This article maps every runtime dependency across the repository, organized by package, with direct source file references.

---

## How k-skill Manages Dependencies

k-skill follows an **npm workspaces** architecture. This means:

- The root [`package.json`](https://github.com/NomaDamas/k-skill/blob/main/package.json) defines only `workspaces` and dev-tools like `@changesets/cli`, `typescript`, and `@types/node`
- Each package in `packages/` maintains its own `dependencies` and `optionalDependencies`
- Cross-package dependencies use workspace references (e.g., `k-skill-browser-runtime@^0.4.0`)

This design keeps individual skills lightweight while allowing shared runtime code.

---

## Core Workspace Packages and Their Dependencies

### k-skill-proxy: HTTP Server Runtime

The proxy server uses **Fastify** as its web framework.

| Dependency | Version | Purpose |
|------------|---------|---------|
| `fastify` | `^5.10.0` | Lightweight HTTP server |

**Source:** [[`packages/k-skill-proxy/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-proxy/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-proxy/package.json)

---

### k-skill-browser-runtime: Browser Automation Core

This is the foundational runtime for all browser-based skills. It declares **optional dependencies** for Playwright implementations.

| Dependency | Version | Type | Purpose |
|------------|---------|------|---------|
| `playwright-core` | `>=1.40.0` | `optionalDependencies` | Standard browser automation |
| `rebrowser-playwright` | `>=1.40.0` | `optionalDependencies` | Rebrowser-flavored Playwright for stealth |

**Source:** [[`packages/k-skill-browser-runtime/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-browser-runtime/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-browser-runtime/package.json)

> **Note:** These are optional because consuming packages must explicitly install one Playwright variant.

---

### k-skill-cli: Pure CLI Wrapper

**No dependencies.** This package serves only as an entry point wrapper.

**Source:** [[`packages/k-skill-cli/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-cli/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-cli/package.json)

---

## Skill Packages with Runtime Dependencies

### yebigun-training, hipass-receipt, ev-subsidy-status

These browser-automation skills share identical dependency patterns:

| Dependency | Version |
|------------|---------|
| `k-skill-browser-runtime` | `^0.4.0` |
| `playwright-core` | `^1.52.0` |

**Sources:**
- [[`packages/yebigun-training/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/yebigun-training/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/yebigun-training/package.json)
- [[`packages/hipass-receipt/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/hipass-receipt/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/hipass-receipt/package.json)
- [[`packages/ev-subsidy-status/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/ev-subsidy-status/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/ev-subsidy-status/package.json)

---

### court-payment-order-assistant, court-auction-notice-search

These court-related skills depend only on the browser runtime:

| Dependency | Version |
|------------|---------|
| `k-skill-browser-runtime` | `^0.4.0` |

**Sources:**
- [[`packages/court-payment-order-assistant/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/court-payment-order-assistant/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/court-payment-order-assistant/package.json)
- [[`packages/court-auction-notice-search/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/court-auction-notice-search/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/court-auction-notice-search/package.json)

---

### naming-house: Korean Name Utilities

This package pulls in specialized third-party libraries:

| Dependency | Version | Purpose |
|------------|---------|---------|
| `korean-stroke` | `^1.1.5` | Korean character stroke calculation |
| `namefyi` | `^0.1.2` | Name analysis utilities |
| `saju-fortune` | `^0.2.0` | Saju (four pillars) fortune calculation |

**Source:** [[`packages/naming-house/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/naming-house/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/naming-house/package.json)

---

### k-skill-rhwp: Hangul Word Processor Support

| Dependency | Version | Purpose |
|------------|---------|---------|
| `@rhwp/core` | `^0.7.3` | WebAssembly wrapper for HWP files |

**Source:** [[`packages/k-skill-rhwp/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-rhwp/package.json)](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-rhwp/package.json)

---

## Skill Packages with Zero Dependencies

Many skills require no npm packages, relying solely on Node.js core or external public APIs:

| Package | Description |
|---------|-------------|
| `k-lotto` | Public lottery API client |
| `used-car-price-search` | Vehicle price lookup |
| `saju-fortune` | Fortune calculation (when used standalone) |
| `public-restroom-nearby` | Public facility locator |
| `parking-lot-search` | Parking information search |

These packages contain only source code with `dependencies: {}` in their [`package.json`](https://github.com/NomaDamas/k-skill/blob/main/package.json) files.

---

## Installing and Using k-skill Dependencies

### Full Monorepo Setup

```bash

# Clone the repository

git clone https://github.com/NomaDamas/k-skill.git
cd k-skill

# Install all workspace dependencies with lockfile respect

npm ci

```

### Single Package Installation

```bash

# Example: standalone skill with no dependencies

cd packages/k-lotto
npm install
node -e "import('k-lotto').then(m => console.log(m.getLatest()))"

```

### Browser-Enabled Skill Setup

```bash

# Example: skill requiring Playwright

cd packages/hipass-receipt
npm install  # installs k-skill-browser-runtime + playwright-core

# Verify CLI

node src/cli.js --help

```

---

## Key Dependency Files in k-skill

| File Path | What It Defines |
|-----------|---------------|
| [`package.json`](https://github.com/NomaDamas/k-skill/blob/main/package.json) (root) | Workspace layout, dev-tools only |
| [`packages/k-skill-proxy/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-proxy/package.json) | Fastify HTTP server dependency |
| [`packages/k-skill-browser-runtime/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-browser-runtime/package.json) | Optional Playwright variants |
| [`packages/k-skill-cli/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-cli/package.json) | Zero-dependency CLI entry point |
| [`packages/naming-house/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/naming-house/package.json) | Third-party Korean utilities |
| [`packages/k-skill-rhwp/package.json`](https://github.com/NomaDamas/k-skill/blob/main/packages/k-skill-rhwp/package.json) | WebAssembly HWP dependency |

---

## Summary

- **Root [`package.json`](https://github.com/NomaDamas/k-skill/blob/main/package.json)** declares zero runtime dependencies for k-skill—only workspace configuration and build tools
- **Browser-automation skills** depend on `k-skill-browser-runtime` and `playwright-core`
- **HTTP proxy server** (`k-skill-proxy`) uses `fastify@^5.10.0`
- **Domain-specific packages** pull specialized libraries like `@rhwp/core` for HWP files or `korean-stroke` for name utilities
- **Many skills** ship with no dependencies, using only Node.js core or public HTTP APIs
- All dependency versions are locked via the root lockfile when using `npm ci`

---

## Frequently Asked Questions

### Does k-skill have any dependencies at the root level?

No. The root [`package.json`](https://github.com/NomaDamas/k-skill/blob/main/package.json) only defines `workspaces` and development tools like `typescript` and `@changesets/cli`. All runtime dependencies are declared per-package in the `packages/` directory.

### Which k-skill packages require Playwright?

`k-skill-browser-runtime` optionally supports `playwright-core` and `rebrowser-playwright`. Consuming packages like `yebigun-training`, `hipass-receipt`, and `ev-subsidy-status` explicitly depend on `playwright-core@^1.52.0` for browser automation.

### How do I install dependencies for a single skill without the entire monorepo?

Navigate to the specific package directory and run `npm install`. For zero-dependency packages like `k-lotto`, this completes instantly. For browser-based skills, this pulls `playwright-core` and the browser runtime automatically.

### What is `@rhwp/core` used for in k-skill?

`@rhwp/core@^0.7.3` is a WebAssembly-based library for reading and writing Hangul Word Processor (HWP) files, as used by the `k-skill-rhwp` package for Korean government document automation.