Files
SubochevAV 8f616f359f
ci / JVM build + tests (pull_request) Failing after 54s
docs: per-module READMEs (run vs library) + root navigation hub
Every subproject now has README.md:
- 3 runnable modules (:standalone, :agentik-cli, :agentik-tui):
  quickstart, env table, parameters, known limits
- 11 library modules: what it is, which problem solves, how to
  wire it in, where versions live

Root README.md is the navigation hub (Quickstart, Modules table,
publish + CI/CD notes).

Also: ci.yml prunes the :memory-vector -x excludes now that
text-embedding-kmp artifacts are published to caffeine.

518 tests green.

Verified publish pipeline: :proto:publish to caffeine produces
pom.module + per-target klibs + sources for all 9 KMP targets.

🤖 Generated with [opencode]
2026-09-16 20:44:16 +03:00

80 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# `:skills` — парсер SKILL.md (KMP, JVM-only)
## Что это
Парсер и runtime для навыков агента в формате [opencode Skills](https://docs.opencode.dev):
- **SKILL.md / \*.yaml** с YAML-frontmatter (`name`, `description`,
`allowed-tools`, etc.) и markdown-телом.
- Реестр `SkillCatalog`, лоадер `SkillLoader` (поиск по
`~/.agentik/skills/`).
- `Skill` имеет стабильный id, описание, может требовать определённые
tools (`allowed-tools: [run_command, write_file]`) — это контролируется
на уровне вызова.
- Загруженные скиллы аггрегируются в system-prompt через
`Skill.toSystemPromptSection()` или подгружаются по требованию через
tool `read_skill`.
Решает задачу: агенту нужно объяснить "что я умею" на разных языках
(нативный skill-вызов vs. описание), нужно уметь включать/выключать
навыки по требованию, и нужно хранить текстовые навыки прямо в
git-репозитории (а не в БД).
## Где используется
- `:standalone` подгружает все SKILL.md из `~/.agentik/skills/`
и инструментового скилл-майнера (skill-mining: создание новых
SKILL.md по LLM-рефлексии).
- Активно юзается для: `code-review`, `arch-summary`, `telegram-reply`,
любых "habits" агента.
## Как подключить
```kotlin
kotlin {
sourceSets.commonMain.dependencies {
api("pw.binom.agentik:skills:0.1.0")
}
}
```
## Версии
`gradle/libs.versions.toml` → `[versions] agentik-skills`.
## Пример SKILL.md
```markdown
---
name: code-review
description: Review uncommitted diff and produce line-anchored comments.
allowed-tools: [run_command, read_file]
---
You are a strict reviewer. For every change in the diff, output:
- File: <path>
- Severity: <nit|warning|blocker>
- Comment: <one sentence>
Only mention issues that are objectively wrong. Do not refactor.
```
## Тесты
```
./gradlew :skills:jvmTest
```
Покрывают: парсинг yaml-frontmatter, обработку отсутствующих полей,
unicode-имена, дубликаты id, очень большое тело.
## Чего здесь НЕТ
- Никакого HTTP / tool-вызова. Парсер и реестр — не более.
- Никакой БД. SKILL.md живут в файлах под управлением пользователя.
## Текущий статус
Используется продакшеном. Парсер простой и предсказуемый; расширять
формат frontmatter можно без поломок (новые поля игнорируются).