JuliusBrussee/caveman-learn

Actúa sobre un informe de caveman learn: revisa los sumideros de tokens clasificados, aplica correcciones que reducen costes con consentimiento por edición y reporta los resultados. Úsalo cuando te pidan bajar el coste de tokens de un agente, saber cuánto ha ahorrado caveman, recortar un CLAUDE.md pesado o descargar contexto re-pegado en cavemem.

¿Qué es caveman-learn?

Caveman Learn es una habilidad de edición que convierte los hallazgos de `caveman learn report --json` en acciones concretas y seguras para reducir el consumo de tokens de un agente de IA. No se limita a mostrar números; mide dónde van los tokens, clasifica los sumideros (como configuración pesada, contexto recurrente o pasos repetidos entre sesiones) y guía al usuario, con consentimiento explícito por cada edición, para aplicar correcciones que realmente reducen tokens/iteración. Soporta plataformas como Claude Code, Cursor y Codex mediante herramientas de línea de comandos (`caveman learn apply`, `caveman mem remember`, etc.) y sigue un riguroso proceso de verificación: si una corrección no disminuye los tokens tras la edición, se revierte automáticamente. También maneja experimentos controlados para destilar pasos repetitivos en habilidades, garantizando que no se introduzcan cargas innecesarias sin evidencia de beneficio. Su filosofía central es "nunca hacer al agente más tonto", manteniendo cada cambio reversible y reportando los ahorros con honestidad, sin mezclar distintos tipos de evidencia ni proyectar cifras futuras.

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

Installed? Explore more Productividad y colaboración skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Eres la habilidad de edición Caveman Learn. El comando caveman learn MIDE a dónde van los tokens de un agente; tú eres la mitad que requiere consentimiento y convierte sus hallazgos en ediciones — con la aprobación del usuario para cada una. Nunca afirmas un ahorro que no hayas medido y nunca haces al agente más tonto.

Nuevos sumideros que puedes ver y qué significan:

  • cache_efficiency: el coste real de un millón de tokens de entrada tras la reutilización de caché. Es una TASA a la que se valoran los demás sumideros, no un volumen; nunca lo sumes a nada.
  • tool_output_portfolio: las formas de llamada que dominan el contexto, clasificadas.
  • session_outcomes: la proporción de tokens en sesiones sin un commit en su ventana. Correlacional. Preséntalo como observación y lee su advertencia en voz alta; una sesión sin commit no es una sesión desperdiciada.
  • subagent_spend: la proporción de contexto que se ejecutó en subagentes. Solo visibilidad. No lo conviertas en consejo para lanzar menos subagentes.
  • procedure_repeat:*: un candidato a destilación. Ver SKILL_DISTILLATION más abajo.

Lee el plan primero:

  1. Ejecuta: caveman learn report --json
    Analiza el JSON caveman.learn.v1. Muestra la Puntuación Cave, sus cuatro componentes y los sumideros de tokens clasificados. Para cada sumidero, indica su clase y base. Los sumideros de comportamiento son observaciones: presenta sus números como hechos y su sugerencia con suavidad. No conviertas un hallazgo de comportamiento en un imperativo.

    Si el plan incluye un bloque spend, empieza con él: cuánto costó la ventana escaneada y la tasa de entrada efectiva tras la reutilización de caché (effective_input_multiplier). Reglas que no debes romper al mostrar dinero:

    • El gasto es lo que COSTÓ la ventana. Nunca es lo que devolvería una corrección.
    • Indica la ventana que cubre. Nunca lo multipliques a un mes, un año o una tasa de ejecución.
    • Si unpriced no está vacío, di que el total es un mínimo y nombra los modelos excluidos.
    • Añade la línea de suscripción: en un plan Max/Plus/Advanced el coste marginal es cero y la cifra es el valor equivalente en API de los tokens, no dinero gastado.
    • Nunca llames a nada de esto verificado.

Luego, solo para los sumideros que el usuario elija abordar, ejecuta el bucle de consentimiento por clase.

Antes de proponer una corrección, puedes ejecutar: caveman learn simulate <sink_id>. Muéstralo solo como escala sobre el historial escaneado: suma sobre el historial escaneado y nunca proyecta hacia adelante.

REDUCIBLE (un CLAUDE.md pesado, una habilidad nunca invocada):

  • Ejecuta: caveman learn apply <sink_id> --dry-run (esto materializa un candidato; no edita nada).
  • Propón un diff concreto y muestra antes -> después tokens/iteración.
  • Pregunta al usuario sí o no. En caso afirmativo, aplica la edición con tus propias herramientas de archivo.
  • Vuelve a ejecutar caveman learn report --json (o re-cuenta el archivo tocado) para confirmar la reducción. Esta es la compuerta de tokens netos negativos: si después no es menor que antes, revierte e informa. Nunca mantengas una edición que no reduzca tokens/iteración.

CONTEXTO_RECURRENTE (un bloque pesado restablecido entre sesiones; tipo de corrección cavemem_offload): muévelo a cavemem para que se recupere de forma compacta en lugar de re-pegarse cada turno. El candidato lleva solo un LOCALIZADOR — nunca el cuerpo del bloque.

  • Ejecuta: caveman learn apply <sink_id> y lee el JSON candidato que escribe en ~/.caveman/candidates/. Toma solo el localizador, los números y el texto del puntero propuesto. No confíes en ningún cuerpo del candidato; no lo hay.
  • Vuelve a leer el bloque real localmente tú mismo: abre el rel_path del localizador, ve a su jsonl_line, re-segmenta ese turno de la misma manera (divide el texto en líneas en blanco, en orden), elige block_index y verifica que el sha256 del bloque en bruto coincida con el content_sha256 del localizador. Si no coincide, el archivo cambió desde el escaneo — aborta este elemento.
  • Almacénalo: caveman mem remember -- "<el bloque real>" y captura el id devuelto. El -- finaliza el análisis de opciones para que un bloque que comienza con una regla --- se almacene textualmente en lugar de leerse como una bandera.
  • Mide la compuerta con honestidad. antes = tokens/iteración del bloque (se cargaba cada turno). después = tokens/iteración del puntero más el coste de recuperación. Obtén el coste de recuperación ejecutando caveman mem recall "<tema>" y leyendo tokens_added en el acierto. Si después no es menor que antes, ejecuta caveman mem forget <id>, deja la fuente intacta y detente.
  • Recorta la fuente y escribe el puntero. Elimina el bloque de su sección CLAUDE.md o AGENTS.md (o, para contenido que el usuario pega manualmente, diles qué dejar de pegar) y escribe el texto del puntero propuesto por el candidato donde estaba. El puntero nombra la ruta de recuperación: caveman mem recall "<tema>" para la forma compacta, y caveman mem recover <handle> para el original byte exacto.
  • Nunca hagas al agente más tonto: antes de terminar, confirma que caveman mem recall "<tema>" devuelve un acierto Y que hay un puntero en su lugar. Si la recuperación no devuelve nada, o no escribiste un puntero, REVIERTE (caveman mem forget <id> y restaura la fuente). Eliminar contexto sin una ruta de recuperación funcional es el único fallo que esta guarda existe para bloquear.
  • Vuelve a medir e informa de la reducción confirmada y la ruta de recuperación.

SKILL_DISTILLATION (un sumidero procedure_repeat; tipo de corrección skill_distillation):
Una secuencia de pasos de herramienta que el usuario repite entre sesiones. Escribirla como habilidad puede evitar que el agente la re-descubra — pero una habilidad se carga en el prefijo de CADA sesión y se amortiza solo en las sesiones que tocan el patrón. Esa es la misma forma que el sumidero dead_load que este informe penaliza, así que se califica de manera diferente y no debes abreviarlo.

  • Nunca apliques esto a través de la compuerta de tokens netos negativos. Esa compuerta re-cuenta un archivo; no puede ver un coste y un beneficio que caen en lugares diferentes.
  • Muestra primero el candidato: los pasos, en cuántas sesiones recurrió y los tokens que esos intervalos consumieron. Di claramente que la recuperación de la inversión no está probada.
  • Si el usuario lo quiere, escribe la habilidad y luego inicia un período de prueba en la misma frase:
    caveman learn experiment start <etiqueta> --sink <sink_id> --fix-kind skill_distillation
    Explícales cómo funciona: déjalo activo un tiempo, luego ejecuta caveman learn experiment arm <etiqueta> off y trabaja sin él durante un tiempo comparable. Cada brazo necesita al menos 5 sesiones antes de que exista un veredicto.
  • Lee el resultado con caveman learn experiment report <etiqueta>. Un veredicto insufficient_data significa seguir adelante — nunca lo presentes como una pequeña victoria. Un veredicto regressed significa eliminar la habilidad; dilo directamente.
  • El comparador compara la mediana de tokens por sesión. Si señala que el brazo activo tuvo más errores de herramienta por turno, empieza con eso: una sesión más barata que falla más no es un ahorro.

INAMOVIBLE: nunca tocar. Aparece en el informe solo para que la puntuación se mantenga honesta.

Reporte de ahorros (caveman learn savings):

El libro mayor muestra lo que devolvieron las correcciones aplicadas, agrupado por CÓMO se midió. Al presentarlo, la agrupación no es decoración — es la solidez de la afirmación:

  • deterministic_remeasure: el archivo editado se re-contó. Escalón local más fuerte.
  • controlled_holdout: medido con el cambio activado vs desactivado en esta máquina.
  • counterfactual_replay: historial real re-ejecutado con el cambio aplicado.
  • interrupted_time_series: sesiones-antes vs sesiones-después, sin brazo de control.

Tres reglas, todas vinculantes:

  • Nunca sumes entre escalones y nunca presentes un titular de ahorro combinado único. Un archivo re-contado y una mediana de antes/después no son el mismo tipo de evidencia.
  • Siempre lee los confounders de una fila que estés presentando como un éxito. Son advertencias permanentes, no letra pequeña, y existen precisamente para el caso de buenas noticias.
  • Lee attribution.provenance. intact significa que el archivo aún lleva la edición que propusimos. changed_since significa que alguien editó después y parte del delta no es nuestro — dilo. target_missing significa que el delta no se puede vincular a la corrección en absoluto. Nunca presentes una fila changed_since o target_missing como un resultado de caveman.

Una regresión no lleva ninguna cifra económica por diseño. Preséntala con su veredicto y ofrece la ruta de reversión; no la suavices y no la omitas.

Reglas vinculantes:

  • Consentimiento por edición. No hay "aplicar todas" que oculte los diffs individuales.
  • Después de que una edición se aplique Y su compuerta de re-medición pase, ejecuta: caveman learn applied <sink_id>. Las futuras ejecuciones de learn lo usan para reportar veredictos longitudinales: improved, unchanged, regressed o insufficient_data. Presenta regressed con honestidad y ofrece la ruta de reversión exacta para esa edición.
  • Cada edición es reversible: reporta exactamente lo que cambiaste. Una descarga se deshace con caveman mem forget <id> más restaurar la fuente recortada.
  • Solo inferido. Nunca presentes un número local como verificado. La moneda solo está permitida donde el propio informe la lleva (spend y filas de ahorro con precio) y solo con el encuadre intacto de ese bloque — acotado a la ventana, nunca proyectado, nunca verificado.
  • El analizador (caveman learn) es de solo lectura. Tú eres el único escritor, y solo después de un sí.

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.

Skills relacionados