caveman-discover
Разделение расходов на AI по задачам
Что получите
Согласованная маркировка задач и отчёт с местами изменений, результатом проверки, неподключёнными вызовами и названиями, требующими уточнения.
Что передать
Репозиторий и сведения о подключении запросов к шлюзу Caveman.
Проверен состав файлов. Запуск не тестировался. Что проверено
Оценки пользователей
Как использовать
Помогает команде найти в репозитории задачи, использующие языковые модели, и добавить метки для Caveman Cloud. Расходы группируются по работе, которую выполняет код, например ответы поддержки или ночная сводка.
- Запросите самостоятельную инвентаризацию задач, начиная с обработчиков, расписаний, команд и проверок моделей.
- Рассмотрите таблицу предложенных названий, мест вызова и способов маркировки; согласуйте её перед изменением кода.
- После согласования добавьте метки и проверьте один путь выполнения средствами проекта.
Условия работы
- Изменение кода требует согласия пользователя на предложенную таблицу. Наблюдение о немаркированном трафике само по себе не разрешает правки или создание PR.
- Метки работают только для трафика через шлюз Caveman; подключение остальных вызовов относится к caveman-setup.
- Переименование разделяет историю расходов. Строки в панели появляются при следующем запуске соответствующих задач; повторная маркировка уже размеченного репозитория не должна менять код.
Пример запроса после установки
Найди в репозитории задачи с вызовами языковых моделей и предложи таблицу меток Caveman Cloud для поддержки, ночных сводок и проверок моделей. Дождись согласования правок.
Пример составлен по инструкции автора; результат запуска не проверялся.
Основание: инструкция закреплённой версииДля установки
Node.js, npm и Git для команды выше. Подключения и инструменты для работы скилла настраиваются отдельно.
Совместимые агенты
Совместимость указана для инструкций. Запуск в каждом приложении не тестировался; для веб-чата способ подключения может отличаться.
Файлы скилла
GitHubЧитать инструкцию SKILL.md
Исходный текст закреплённой версии.
--- name: caveman-discover description: > Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for "discover workflows" or breaking LLM spend down by workflow. --- You are labeling this repository's LLM workflows for Caveman Cloud. A *workflow* is a job the code performs — "answer a support ticket", "build the nightly digest", "run the eval suite" — not a technology. Every gateway request can carry a workflow label; unlabeled traffic all lands in one `unlabeled-workflow` bucket. Your job: find the workflows, name them well, wire the labels, and verify nothing broke. This changes code, so it goes through the user's normal review: **propose the table first, apply after the user agrees.** Re-running on an already-labeled repo must change nothing (idempotent). This skill is operator-invoked. An `unlabeled-traffic` Cave Plan observation is review-only and does not create an advisory file, proposal, or Draft PR. Do not infer that telemetry selected a callsite or authorized an edit. Independently inventory the repository, present the labeling table, and wait for the user's approval before changing code. ## Step 1 — Inventory the workflows Walk the repo from its entry points, not from its imports: - HTTP/RPC handlers that call an LLM (directly or through layers) - Scheduled jobs: cron definitions, queue consumers, workers, GitHub Actions that invoke LLM code - CLI commands and scripts (`scripts/`, `bin/`, package.json scripts) - Eval / test harnesses that burn real tokens - Distinct agents or chains inside a framework (each LangGraph graph, each crew, each agent definition is usually its own workflow) One workflow = one job a human would name. Ten callsites inside the same request handler are one workflow; one shared `llm.ts` helper used by three jobs is three workflows (label at the callers, never the shared helper). ## Step 2 — Name them Slug grammar (the gateway enforces this): lowercase `[a-z0-9_-]`, 1–96 chars. Name the job, not the tech: - Good: `support-reply`, `nightly-digest`, `pr-review`, `eval-suite`, `onboarding-email` - Bad: `openai-calls` (tech), `main` (says nothing), `SupportReply` (invalid), `johns-test-3` (won't age) Names are forever-ish — renaming later splits the spend history. When a job's purpose isn't clear from the code, derive the slug from the file name and mark it `review` in the table rather than inventing a purpose. ## Step 3 — Propose, then apply Present this table and ask to proceed: ``` | workflow | job | where | how it gets labeled | |---|---|---|---| | support-reply | answers inbound tickets | src/bot/reply.ts:41 | defaultHeaders on the reply client | | nightly-digest | 02:00 summary job | jobs/digest.ts:12 | header on the digest client | | eval-suite (review) | scripts/eval.ts:8 — purpose inferred from filename | scripts/eval.ts:8 | env override at invocation | ``` Then wire each label with the lightest mechanism available at that callsite: - **@caveman-ai/sdk / caveman_cloud SDK**: per-trace `workflow` option, or `defaultWorkflow` on the client a single-job service constructs. - **Raw provider SDKs** (OpenAI/Anthropic/LangChain/LiteLLM/Vercel): add `"x-cave-workflow": "<slug>"` to the same `defaultHeaders` / `default_headers` / `extra_headers` block that already carries `x-cave-api-key`. Shared client used by several jobs → pass the header per call (every SDK above accepts per-request header overrides), or give each job its own thin client. - **Wrapped coding agents** (`caveman wrap`): `--workflow <slug>` flag or `CAVE_WORKFLOW=<slug>` env at the invocation site (cron line, CI step). - **Raw HTTP**: add the `x-cave-workflow` header to the request. Label the callers, keep the diff minimal, match the repo's style. If a callsite is not routed through the Caveman gateway at all, don't label it — list it under "not wired" in the report (labels only travel on gateway traffic; wiring is the caveman-setup skill's job). ## Step 4 — Verify Run whatever the repo already uses to exercise one labeled path (a test, a dev script, one curl). Then confirm: the request still succeeds (the gateway rejects an invalid label with 400 `cave_invalid_request_header` — fix the slug if so). Labeled spend appears on the dashboard at `/activity?tab=workflows` as each workflow next runs; jobs on a schedule show up when the schedule fires, and that's worth saying in the report rather than pretending they're live. ## Step 5 — Report ``` ## Workflows labeled | workflow | job | where | |---|---|---| | support-reply | answers inbound tickets | src/bot/reply.ts:41 | | nightly-digest | 02:00 summary job | jobs/digest.ts:12 | Verified: <the labeled path you actually exercised, and what you observed> Lands at: <DASHBOARD>/activity?tab=workflows — each row appears as that workflow next runs. Anything still unlabeled shows as `unlabeled-workflow`. Not wired (no gateway routing, so no label): <list or "none"> Marked review: <slugs whose purpose was inferred from filenames, or "none"> ``` If you found no LLM entry points at all: say exactly that, and point at the setup skill (`<docs origin>/docs/agent-setup.md`) instead of manufacturing a table.
Проверка и особенности
Автоматическая проверка источника и файлов
Автоматически сверены публичный репозиторий, лицензия, YAML-заголовок SKILL.md, состав папки и Git-хеш каждого файла. Исполняемые файлы и срабатывания статических правил исключены из этой партии. Ручной аудит всех инструкций и проверка работы не проводились; эта проверка не гарантирует безопасность. Команда закреплена на проверенном коммите.
Интерес к репозиторию оцениваем по звёздам и форкам GitHub. Это показатели всего репозитория, а не числа установок отдельного скилла.
- Проверка состава
- 16.09.2026
- Проверенная версия
eae856e9ea2b- Файлы с кодом
- Не указаны в данных проверки
- Изменения на GitHub
- Нужна повторная проверкаПоследняя проверка: 11.10.2026
Репозиторий и лицензия
Это показатели всего репозитория, а не установки скилла. Снимок требует обновления.
- Последняя активность GitHub
- 11.10.2026
- Лицензия
- MIT
- Добавлен в каталог
- 16.09.2026
Полный текст лицензии
Scope note: this MIT license covers this repository except Engine-linked directories listed in LICENSING.md (engine/, proxy/, rewriter/, browse/, mcp/, shrink/, cavemem Go core, shared/platform/), which are licensed under Business Source License 1.1 — see LICENSE.BSL. New Engine-linked runtime modules default to BSL-1.1 unless explicitly classified as MIT. MIT License Copyright (c) 2026 Julius Brussee Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Ещё в этой категории
Все в категорииОбсуждение
ПравилаПользовались этим скиллом? Делитесь опытом без регистрации. Все комментарии проверяет модератор.
