---
type: JS Module
title: skills-cli.mjs
resource: npm/scripts/skills-cli.mjs
docgen:
  crc: a51f113a
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
---

## Огляд

Цей модуль забезпечує керування функціоналом скілів пакета `@nitra/cursor`. Він каталогізує доступні скіли на основі наявності файлу `SKILL.md` у відповідному пакеті. Для виконання скілу збирається контекст, що включає інструкції скілу та інформацію з конфігураційних файлів проєкту: `package.json`, `tsconfig.json`, `.n-cursor.json` та `main.json`. Система дозволяє або вивести список доступних скілів (`npx @nitra/cursor skill list`), або ініціювати виконання обраного скілу (наприклад, `npx @nitra/cursor skill pi taze`), з можливістю передачі додаткових аргументів. Пріоритетним механізмом виконання є інтеграція з вбудованим pi-агентом, тоді як для забезпечення сумісності підтримуються застарілі виклики через зовнішні CLI (`cursor`, `claude`).

## Поведінка

Поведінка
normalizeSkillId знімає префікс `n-` з імені скілу для приведення його до стандартного ID.
listSkillIds отримує відсортований список ID скілів, які мають файл `SKILL.md` у вказаній директорії скілів.
buildSkillPrompt збирає комплексний промпт для виконання скілу, об'єднуючи інструкцію скілу з конфігураційними файлами проєкту, такими як `package.json`, `tsconfig.json` та `.n-cursor.json`.
resolveBundledPackageRoot визначає абсолютний шлях до кореня пакету `@nitra/cursor`, використовуючи інформацію про поточний модуль.
runSkillsCli виконує логіку командного інтерфейсу для керування скілами: може вивести список доступних скілів, зібрати промпт для скілу або ініціювати його виконання через вбудований pi-агент, використовуючи зовнішні CLI як резервний варіант.

## Публічний API

- normalizeSkillId — знімає префікс `n-` з імені скілу, приводячи його до id каталогу в пакеті.
- listSkillIds — повертає відсортований список id скілів, що мають `SKILL.md`.
- buildSkillPrompt — збирає промпт виконання: інструкція скілу + контекст проєкту (`package.json`, `tsconfig.json`, `.n-cursor.json`); кидає, якщо скіл невідомий.
- resolveBundledPackageRoot — абсолютний шлях до кореня встановленого пакета `@nitra/cursor`.
- runSkillsCli — асинхронний entrypoint підкоманди `skill`: `list`, друк промпта на stdout, або виконання через `pi` (рекомендовано), `cursor`/`claude` (deprecated). Повертає exit-код.

## Гарантії поведінки

- Сам модуль лише читає файли й збирає промпт; **виконання** делегується агенту: `pi` (вбудований, мутує дерево, запускає bash) або зовнішнім `cursor`/`claude` CLI.
- Тира моделі для `pi`-runner береться з `main.json.tier` скіла (дефолт `max`).
- `cursor`/`claude` — deprecated: друкують попередження й лишаються як fallback, доки не налаштовано pi-модель.
