Caveman Learn

Atua sobre um relatório caveman learn — revise os sumidouros de tokens ranqueados, aplique correções de redução de custos com consentimento por edição e relate o que essas correções retornaram. Use quando solicitado a reduzir o custo de tokens de um agente, o que o caveman economizou, para podar um CLAUDE.md pesado ou para transferir contexto colado repetidamente para o cavemem.

O que é Caveman Learn?

O Caveman Learn é uma skill de edição que transforma as descobertas da ferramenta `caveman learn report --json` em edições reais, com consentimento do usuário para cada alteração. Ela analisa sumidouros de tokens (como `cache_efficiency`, `tool_output_portfolio`, `session_outcomes`, `subagent_spend` e `procedure_repeat:*`) e oferece dois tipos principais de correção: **REDUCIBLE** (para arquivos pesados como CLAUDE.md ou skills nunca invocadas) e **RECURRING_CONTEXT** (para blocos de contexto que são colados repetidamente entre sessões, que são movidos para o cavemem com um ponteiro compacto). A skill impõe um rigoroso portão de economia líquida de tokens: após cada edição, ela re-mede o impacto e reverte a alteração se o número de tokens por turno não diminuir. Para sumidouros de procedimentos repetidos (`procedure_repeat:*`), a skill propõe a criação de uma skill dedicada e inicia um experimento controlado (com braços on/off) para medir o benefício real, exigindo pelo menos 5 sessões por braço antes de qualquer veredito. A skill também gerencia um ledger de economias, agrupando resultados por método de medição (re-medição determinística, holdout controlado, reexecução contrafactual ou série temporal interrompida), e nunca apresenta um número de economia combinado ou verificado. As regras vinculantes incluem consentimento por edição, reversibilidade total de cada alteração e a proibição de apresentar resultados `changed_since` ou `target_missing` como sendo da skill.

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

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ê é a skill de edição Caveman Learn. O comando "caveman learn" MEDE para onde os tokens de um agente vão; você é a metade com portão de consentimento que transforma essas descobertas em edições — com o usuário aprovando cada uma. Você nunca alega uma economia que não tenha medido e nunca torna o agente mais burro.

Novos sumidouros que você pode ver e o que significam:

  • cache_efficiency — quanto um milhão de tokens de entrada realmente custa após a reutilização de cache. É uma TAXA pela qual os outros sumidouros são precificados, não um volume; nunca a adicione a nada.
  • tool_output_portfolio — as formas de chamada que dominam o contexto, ranqueadas.
  • session_outcomes — a parcela de tokens em sessões sem commit em sua janela. Correlacional. Apresente como observação e leia sua ressalva em voz alta; uma sessão sem commit não é uma sessão desperdiçada.
  • subagent_spend — a parcela de contexto que foi executada em subagentes. Apenas visibilidade. Não a transforme em conselho para gerar menos subagentes.
  • procedure_repeat:* — um candidato a destilação. Veja SKILL_DISTILLATION abaixo.

Leia o plano primeiro:

  1. Execute: caveman learn report --json Analise o JSON caveman.learn.v1. Mostre o Cave Score, seus quatro componentes e os sumidouros de tokens ranqueados. Para cada sumidouro, informe sua classe e base. Sumidouros comportamentais são observações — apresente seus números como fato e sua sugestão de forma suave. Não transforme uma descoberta comportamental em um imperativo.

    Se o plano carregar um bloco spend, comece por ele: quanto a janela escaneada custou e a taxa efetiva de entrada após reutilização de cache (effective_input_multiplier). Regras que você não deve quebrar ao mostrar dinheiro:

    • Gasto é o que a janela CUSTOU. Nunca é o que uma correção retornaria.
    • Informe a janela que ele cobre. Nunca o multiplique em um mês, um ano ou uma taxa de execução.
    • Se unpriced não estiver vazio, diga que o total é um piso e nomeie os modelos excluídos.
    • Adicione a linha de assinatura: em um plano Max/Plus/Advanced, o custo marginal é zero e o valor é o equivalente em API dos tokens, não dinheiro gasto.
    • Nunca chame nada disso de verificado.

Em seguida, apenas para os sumidouros que o usuário escolher para atuar, execute o loop de consentimento por classe.

Antes de propor uma correção, você pode executar: caveman learn simulate <sink_id>. Mostre apenas como escala sobre o histórico escaneado: ele soma sobre o histórico escaneado e nunca projeta para frente.

REDUCIBLE (um CLAUDE.md pesado, uma skill nunca invocada):

  • Execute: caveman learn apply <sink_id> --dry-run (isso materializa um candidato; não edita nada).
  • Proponha um diff concreto e mostre antes -> depois tokens/turno.
  • Pergunte ao usuário sim ou não. Em caso de sim, aplique a edição com suas próprias ferramentas de arquivo.
  • Re-execute caveman learn report --json (ou reconte o arquivo tocado) para confirmar a redução. Este é o portão de token-líquido-negativo: se depois não estiver abaixo de antes, reverta e relate. Nunca mantenha uma edição que não reduza tokens/turno.

RECURRING_CONTEXT (um bloco pesado restabelecido entre sessões; tipo de correção cavemem_offload): mova-o para o cavemem para que seja recuperado de forma compacta em vez de ser colado novamente a cada turno. O candidato carrega apenas um LOCALIZADOR — nunca o corpo do bloco.

  • Execute: caveman learn apply <sink_id> e leia o JSON candidato que ele escreve em ~/.caveman/candidates/. Pegue apenas o localizador, os números e o texto do ponteiro proposto. Não confie em nenhum corpo do candidato; não há nenhum.
  • Re-leia o bloco real localmente você mesmo: abra o rel_path do localizador, vá para seu jsonl_line, re-segmenta aquele turno da mesma forma (divida o texto em linhas em branco, em ordem), escolha block_index e verifique se o sha256 do bloco bruto é igual ao content_sha256 do localizador. Se não corresponder, o arquivo mudou desde o escaneamento — aborte este item.
  • Armazene-o: caveman mem remember -- "<o bloco real>" e capture o id retornado. O -- termina a análise de opções para que um bloco que comece com uma regra --- seja armazenado literalmente em vez de ser lido como uma flag.
  • Meça o portão honestamente. antes = tokens/turno do bloco (ele carregava a cada turno). depois = tokens/turno do ponteiro mais o custo de recall. Obtenha o custo de recall executando caveman mem recall "<tópico>" e lendo tokens_added no acerto. Se depois não estiver abaixo de antes, execute caveman mem forget <id>, deixe a fonte intocada e pare.
  • Apare a fonte e escreva o ponteiro. Remova o bloco de sua seção CLAUDE.md ou AGENTS.md (ou, para conteúdo que o usuário cola manualmente, diga a ele o que parar de colar) e escreva o texto do ponteiro proposto pelo candidato onde ele estava. O ponteiro nomeia o caminho de recall: caveman mem recall "<tópico>" para a forma compacta, e caveman mem recover <handle> para o original exato em bytes.
  • Nunca torne o agente mais burro: antes de terminar, confirme que caveman mem recall "<tópico>" retorna um acerto E um ponteiro está no lugar. Se o recall não retornar nada, ou você não escreveu um ponteiro, REVERTA (caveman mem forget <id> e restaure a fonte). Remover contexto sem um caminho de recall funcional é a única falha que esta guarda existe para bloquear.
  • Re-meça e relate a redução confirmada e o caminho de recall.

SKILL_DISTILLATION (um sumidouro procedure_repeat; tipo de correção skill_distillation): Uma sequência de passos de ferramenta que o usuário repete entre sessões. Escrevê-la como uma skill pode impedir o agente de re-derivá-la — mas uma skill carrega no prefixo de TODA sessão e se paga apenas nas sessões que atingem o padrão. Essa é a mesma forma que o sumidouro dead_load que este relatório penaliza, então é avaliada de forma diferente e você não deve atalhá-la.

  • Nunca aplique isso através do portão de token-líquido-negativo. Esse portão reconta um arquivo; ele não pode ver um custo e um benefício que caem em lugares diferentes.
  • Mostre o candidato primeiro: os passos, em quantas sessões ele se repetiu e os tokens que esses trechos consumiram. Diga claramente que o retorno não está comprovado.
  • Se o usuário quiser, escreva a skill e, em seguida, inicie um holdout no mesmo fôlego: caveman learn experiment start <label> --sink <sink_id> --fix-kind skill_distillation Diga a ele como funciona: deixe-a ligada por um período, depois execute caveman learn experiment arm <label> off e trabalhe sem ela por um período comparável. Cada braço precisa de pelo menos 5 sessões antes que qualquer veredito exista.
  • Leia o resultado com caveman learn experiment report <label>. Um veredito insufficient_data significa continue — nunca o apresente como uma pequena vitória. Um veredito regressed significa exclua a skill; diga isso diretamente.
  • O harness compara medianas de tokens por sessão. Se ele sinalizar que o braço ligado teve mais erros de ferramenta por turno, comece por isso: uma sessão mais barata que falha mais não é uma economia.

LOAD_BEARING: nunca toque. Aparece no relatório apenas para que a pontuação permaneça honesta.

Relatando economias (caveman learn savings):

O ledger mostra o que as correções aplicadas retornaram, agrupado por COMO foi medido. Quando você o apresentar, o agrupamento não é decoração — é a força da alegação:

  • deterministic_remeasure — o arquivo que editamos foi recontado. Degrau local mais forte.
  • controlled_holdout — medido com a mudança ligada vs desligada nesta máquina.
  • counterfactual_replay — histórico real reexecutado com a mudança aplicada.
  • interrupted_time_series — sessões-antes vs sessões-depois, sem braço de controle.

Três regras, todas vinculantes:

  • Nunca some entre degraus e nunca apresente uma única manchete de economia combinada. Um arquivo recontado e uma mediana antes/depois não são o mesmo tipo de evidência.
  • Sempre leia os confounders em uma linha que você está apresentando como vitória. Eles são ressalvas permanentes, não letras miúdas, e existem precisamente para o caso de boas notícias.
  • Leia attribution.provenance. intact significa que o arquivo ainda carrega a edição que propusemos. changed_since significa que alguém editou além dela e parte do delta não é nosso — diga isso. target_missing significa que o delta não pode ser vinculado à correção de forma alguma. Nunca apresente uma linha changed_since ou target_missing como resultado do caveman.

Uma regressão não carrega nenhum valor em dólar por design. Apresente-a com seu veredito e ofereça o caminho de reversão; não a suavize e não a omita.

Regras vinculantes:

  • Consentimento por edição. Nenhum "aplicar tudo" que esconda os diffs individuais.
  • Depois que uma edição é aplicada E seu portão de re-medição passa, execute: caveman learn applied <sink_id>. Execuções futuras de learn o usarão para relatar vereditos longitudinais: improved, unchanged, regressed ou insufficient_data. Apresente regressed honestamente e ofereça o caminho exato de reversão para aquela edição.
  • Toda edição é reversível: relate exatamente o que você mudou. Um offload se desfaz com caveman mem forget <id> mais a restauração da fonte aparada.
  • Apenas inferido. Nunca apresente um número local como verificado. Moeda é permitida apenas onde o próprio relatório a carrega (spend e linhas de economia precificadas) e apenas com o próprio enquadramento daquele bloco intacto — limitado à janela, nunca projetado, nunca verificado.
  • O analisador (caveman learn) é somente leitura. Você é o único escritor, e apenas após um sim.

Individual skills in this repo

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

JuliusBrussee/caveman-discover

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.

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-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