BC tools
Создание LLM-инструментов с Vovk.ts — `deriveTools()` (процедуры → инструменты), возвращающий массив `StandardToolV0[]`, автономные инструменты через пакет `standard-tool`, декоратор `@operation.tool({ name, title, description, hidden, meta })`, метаданные `x-tool`, форматировщики вывода `ToModelOutput` (`DEFAULT`, `MCP`, `RAW`), объединенная схема `inputSchema`, опция `meta` для передачи контекста процедурам, `withDefaults` для встраивания аутентификации в сторонние инструменты API, а также шаблон `pick` / `omit` для выбора конкретных процедур. Используйте, когда пользователь просит предоставить API для LLM, настроить вызов инструментов, создать MCP-сервер, «позволить Claude / GPT вызывать это», «превратить мои контроллеры в инструменты», «функции вызова с Vercel AI SDK», «автономный инструмент», «скрыть процедуру от LLM», «инструмент, который оборачивает сторонний SDK» или любой вариант. НЕ охватывает создание процедур → навык `procedure`. НЕ охватывает спецификацию OpenAPI, кроме `@operation`/`x-tool` → навык `openapi`. НЕ охватывает настройку сторонних смешиваний OpenAPI → навык `mixins`.
машинный переводПоказать оригиналСкрыть оригинал«Building LLM tools with Vovk.ts — `deriveTools()` (procedures → tools)…»
Building LLM tools with Vovk.ts — `deriveTools()` (procedures → tools) returning a `StandardToolV0[]` array, standalone tools via the `standard-tool` package, `@operation.tool({ name, title, description, hidden, meta })` decorator, `x-tool` metadata, `ToModelOutput` formatters (`DEFAULT`, `MCP`, `RAW`), the merged `inputSchema`, the `meta` option for passing context to procedures, `withDefaults` for baking auth into third-party API tools, and the `pick` / `omit` pattern for selecting specific procedures. Use whenever the user asks to expose an API to an LLM, wire up tool calling, build an MCP server, "let Claude / GPT call this", "turn my controllers into tools", "function calling with Vercel AI SDK", "standalone tool", "hide a procedure from the LLM", "tool that wraps a third-party SDK", or any variation. Does NOT cover procedure authoring → `procedure` skill. Does NOT cover the OpenAPI spec beyond `@operation`/`x-tool` → `openapi` skill. Does NOT cover third-party OpenAPI mixin setup → `mixins` skill.
Скилл обещает превратить процедуры в LLM-инструменты через `deriveTools()` — генерирует `StandardToolV0[]` массив с поддержкой декоратора `@operation.tool()`, форматеров `ToModelOutput` (DEFAULT, MCP, RAW) и паттернов `pick`/`omit` для выбора процедур. В файлах реализована базовая логика преобразования схем, но документация обрезана на полусредине — описание обещает больше, чем показывает код.
Проверки дали B-оценку: quality 79%, process 54%. Критических проблем нет, но процессная часть хромает. Скилл работает с основными платформами (Claude, GPT, Gemini, Cursor), однако качество интеграции с MCP и форматерами остаётся неясным — прогонов на моделях не было. Для простого wire-up tool calling в Claude подойдёт, для сложных сценариев с кастомной логикой может потребоваться доработка.
Создание LLM-инструментов с Vovk.ts — deriveTools() (процедуры → инструменты), возвращающий массив StandardToolV0[], автономные инструменты через пакет…
Как процесс C 54/100 · Есть пробелы — слабые места: результат и критерий готовности, входы и предусловия, повторный запуск
Как улучшить
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 6023 токенов (рекомендуется < 5000); вынесите детали в references/
Процессный рейтинг: все десять параметров 54/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 13, без проверки текущего состояния
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 60Инструменты и файлы. Используются инструменты (web), но во frontmatter они не объявлены
- 70Стоимость исполнения. Тело инструкции 6023 токенов
- 85Шаги. Шагов: 20, расплывчатых формулировок: 1
- 100Когда включается. Сказано, когда применять и когда не применять
- 100Согласованность. Имя и обязательные поля на месте
- low Ответ описан самодельной разметкой (3 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 1018: рекомендуется 120–800 символов
- +1Лицензия не указана
- +2Инструкции на одном языке
- +5В description 6 примера фраз-триггеров в кавычках
- +4Структура: 19 заголовков
- +3Пошаговые инструкции: 20 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (19 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 79.