JuliusBrussee/caveman-discover

Encontre e rotule cada fluxo de trabalho (workflow) de LLM no repositório para que o Caveman Cloud agrupe gastos por fluxo, em vez de uma única cesta. Use para "descobrir workflows" ou dividir o gasto de LLM por workflow.

O que é caveman-discover?

Esta skill inspeciona um repositório para identificar todos os pontos de chamada a LLMs (seja via SDKs como OpenAI/Anthropic, agentes customizados, jobs agendados, CLI ou testes) e os classifica em **workflows** — cada um representando uma tarefa de negócio específica (ex.: responder ticket de suporte, gerar resumo noturno, revisar PR). A skill então propõe uma tabela de mapeamento com slugs padronizados e, após aprovação do usuário, insere os cabeçalhos HTTP `x-cave-workflow` nos locais adequados (clientes, chamadas individuais ou variáveis de ambiente), garantindo que o tráfego seja corretamente rotulado no dashboard do Caveman Cloud. Suporta qualquer stack (SDK oficial, SDKs de provedores, agentes encapsulados ou HTTP puro) e é idempotente – se executada novamente em um repositório já configurado, não faz alterações. Útil para engenheiros que querem granularidade de custos de LLM, separando gastos por funcionalidade em vez de ter tudo em um único bucket `unlabeled-workflow`.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/JuliusBrussee/caveman/tree/main/skills/caveman-discover

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Você está rotulando os workflows de LLM deste repositório para o Caveman Cloud. Um workflow é uma tarefa que o código executa — "responder um ticket de suporte", "gerar o resumo noturno", "executar a suíte de avaliação" — não uma tecnologia. Cada requisição ao gateway pode carregar um rótulo de workflow; tráfego não rotulado cai todo em um único bucket unlabeled-workflow. Seu trabalho: encontrar os workflows, nomeá-los bem, conectar os rótulos e verificar se nada quebrou.

Isso altera código, portanto passa pela revisão normal do usuário: proponha a tabela primeiro, aplique após o usuário concordar. Executar novamente em um repositório já rotulado não deve alterar nada (idempotente).

Esta skill é invocada pelo operador. Uma observação de Cave Plan unlabeled-traffic é apenas para revisão e não cria arquivo de consultoria, proposta ou Draft PR. Não presuma que a telemetria selecionou um ponto de chamada ou autorizou uma edição. Faça o inventário do repositório de forma independente, apresente a tabela de rotulagem e aguarde a aprovação do usuário antes de alterar código.

Passo 1 — Inventariar os workflows

Percorra o repositório a partir dos pontos de entrada, não das importações:

  • Manipuladores HTTP/RPC que chamam um LLM (diretamente ou através de camadas)
  • Jobs agendados: definições cron, consumidores de fila, workers, GitHub Actions que invocam código LLM
  • Comandos CLI e scripts (scripts/, bin/, scripts do package.json)
  • Suítes de eval / teste que consomem tokens reais
  • Agentes ou chains distintos dentro de um framework (cada grafo LangGraph, cada equipe, cada definição de agente é geralmente seu próprio workflow)

Um workflow = uma tarefa que um humano nomearia. Dez pontos de chamada dentro do mesmo manipulador de requisição são um workflow; um helper llm.ts compartilhado usado por três jobs é três workflows (rotule nos chamadores, nunca no helper compartilhado).

Passo 2 — Nomeá-los

Gramática do slug (o gateway exige isso): minúsculas [a-z0-9_-], de 1 a 96 caracteres. Nomeie a tarefa, não a tecnologia:

  • Bom: support-reply, nightly-digest, pr-review, eval-suite, onboarding-email
  • Ruim: openai-calls (tecnologia), main (não diz nada), SupportReply (inválido), johns-test-3 (não envelhece bem)

Nomes são praticamente permanentes — renomear depois quebra o histórico de gastos. Quando o propósito de uma tarefa não estiver claro no código, derive o slug do nome do arquivo e marque-o como review na tabela, em vez de inventar um propósito.

Passo 3 — Propor, depois aplicar

Apresente esta tabela e peça para prosseguir:

| workflow | job | onde | como é rotulado |
|---|---|---|---|
| support-reply | responde tickets recebidos | src/bot/reply.ts:41 | defaultHeaders no cliente de reply |
| nightly-digest | job de resumo às 02:00 | jobs/digest.ts:12 | cabeçalho no cliente de digest |
| eval-suite (review) | scripts/eval.ts:8 — propósito inferido do nome do arquivo | scripts/eval.ts:8 | env override na invocação |

Em seguida, conecte cada rótulo com o mecanismo mais leve disponível naquele ponto de chamada:

  • @caveman-ai/sdk / caveman_cloud SDK: opção workflow por trace, ou defaultWorkflow no cliente que um serviço de job único constrói.
  • SDKs de provedores nativos (OpenAI/Anthropic/LangChain/LiteLLM/Vercel): adicione "x-cave-workflow": "<slug>" ao mesmo bloco defaultHeaders / default_headers / extra_headers que já carrega x-cave-api-key. Cliente compartilhado usado por vários jobs → passe o cabeçalho por chamada (todos os SDKs acima aceitam sobrescrita de cabeçalho por requisição), ou dê a cada job seu próprio cliente leve.
  • Agentes de codificação encapsulados (caveman wrap): flag --workflow <slug> ou env CAVE_WORKFLOW=<slug> no ponto de invocação (linha cron, passo de CI).
  • HTTP puro: adicione o cabeçalho x-cave-workflow à requisição.

Rotule os chamadores, mantenha o diff mínimo, siga o estilo do repositório. Se um ponto de chamada não é roteado pelo gateway Caveman, não o rotule — liste-o como "não conectado" no relatório (rótulos só viajam no tráfego do gateway; a conexão é trabalho da skill caveman-setup).

Passo 4 — Verificar

Execute o que o repositório já usa para exercitar um caminho rotulado (um teste, um script de desenvolvimento, um curl). Então confirme: a requisição ainda tem sucesso (o gateway rejeita um rótulo inválido com 400 cave_invalid_request_header — corrija o slug se for o caso). O gasto rotulado aparece no dashboard em /activity?tab=workflows assim que cada workflow for executado; jobs em um cron só aparecem quando o cron disparar, e vale a pena mencionar isso no relatório em vez de fingir que estão ativos.

Passo 5 — Relatório

## Workflows rotulados

| workflow | job | onde |
|---|---|---|
| support-reply | responde tickets recebidos | src/bot/reply.ts:41 |
| nightly-digest | job de resumo às 02:00 | jobs/digest.ts:12 |

Verificado: <o caminho rotulado que você realmente exercitou e o que observou>
Destino: <DASHBOARD>/activity?tab=workflows — cada linha aparece assim que o respectivo workflow for executado. Qualquer coisa ainda não rotulada aparece como `unlabeled-workflow`.
Não conectados (sem roteamento do gateway, portanto sem rótulo): <listar ou "nenhum">
Marcados como review: <slugs cujo propósito foi inferido dos nomes de arquivo, ou "nenhum">

Se você não encontrou nenhum ponto de entrada de LLM: diga exatamente isso e aponte para a skill de configuração (<docs origin>/docs/agent-setup.md) em vez de fabricar uma tabela.

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

JuliusBrussee/caveman-evidence-review

Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.

JuliusBrussee/caveman-explore

Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed. Skip it when the exact file or symbol is already named. Returns path:line citations only; its reads stay out of main context.

JuliusBrussee/caveman-learn

Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.

JuliusBrussee/caveman-manage

Inspect Caveman Cloud's experiment lifecycle and block unsafe execution. Use when asked to start, approve, cancel, promote or roll back a Caveman experiment.

JuliusBrussee/caveman-optimize

Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation. Use when asked to inspect or evaluate a Caveman optimization report. Needs explicit approval.

JuliusBrussee/caveman-setup

Wire a repository through the Caveman Cloud gateway so every LLM request is measured, with no behavior change. Use for "set up caveman" or adding LLM spend observability.

JuliusBrussee/investigate-first

Diagnose ambiguous failures before editing. Use for unknown causes, intermittent behavior, performance regressions, or investigations needing evidence-ranked hypotheses.

JuliusBrussee/lean-build

Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.

JuliusBrussee/migration

Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and preservation proof.

JuliusBrussee/safe-refactor

Restructure code while preserving behavior. Use for extraction, consolidation, ownership moves, or cleanup where verification must bracket structural edits.

JuliusBrussee/surgical-patch

Fix bugs and small behavior changes at the narrowest responsible layer. Use when regression proof, preserved surrounding behavior, and task-relevant tests matter.

JuliusBrussee/verify-and-stop

Prove existing work meets acceptance conditions without expanding scope. Use for validation-only tasks, completion checks, focused gate runs, and last-mile proof.

Habilidades Relacionadas