Auditoría de ablación de tu CLAUDE.md, de tus skills y de tus hooks. Solo lee, clasifica y propone — nunca cambia nada.

Cada línea de tu configuración es culpable de complejidad hasta que se demuestre su utilidad. La skill lee todo, clasifica cada instrucción y entrega un informe con la versión mínima propuesta. Aplicarla es decisión tuya, en una solicitud aparte.
Clasifica cada instrucción como contexto, guardrail, criterio, verificación, integración, procedimiento, microgestión, redundancia, legado o no comprobada.
Ninguna edición, ningún rm, ningún mv, ningún commit. Una auditoría que ya empieza a hacer cambios es una auditoría en la que no confías.
Termina con un plan de ablación A/B/C sobre tareas reales de tu proyecto — para comprobar el cambio antes de adoptarlo.
Boris Cherny creó Claude Code en Anthropic. La tesis, en una frase: la configuración envejece.
Cada ~6 meses y, sobre todo, cuando se lance un modelo importante: elimina tu CLAUDE.md, elimina tus skills, elimina tus hooks — y mira qué hace el modelo sin ellos.
Boris Cherny · charla en Y Combinator, un día después del lanzamiento de Opus 5
Cada instrucción que escribes corrige la debilidad de un modelo específico. Cuando el siguiente modelo ya no tiene esa debilidad, la línea se convierte en peso muerto — y se sigue volviendo a leer en cada uso.
Eso fue lo que pasó en el propio Claude Code con la llegada de Opus 5. Lo que quedó del prompt del sistema es casi todo seguridad, permisos, análisis estático e interfaz.
Escribir instrucciones como «haz A, luego B y después C» funcionaba con los modelos antiguos. Hoy impide que el modelo encuentre un camino mejor. Escribe la tarea + los límites de seguridad + los criterios de salida.
Un prompt corto con una forma real de que el modelo verifique su propio trabajo supera a un prompt gigante sin verificación. Producir → observar → comparar → condición de parada.
La cuarta etapa es la que importa: predices muy mal qué instrucción necesita el modelo, y cada línea que conservas consume contexto en cada ejecución.


Si usas Claude Code desde hace algunos meses, probablemente tengas al menos tres de estos:
| Síntoma | Lo que suele ser |
|---|---|
CLAUDE.md de 300 líneas con excepciones fechadas | correcciones de modelos que ya quedaron obsoletas |
La misma regla en CLAUDE.md y en 3 skills | redundancia que se convierte en conflicto cuando cambia una de las copias |
| Skill de 400 líneas que enseña «cómo pensar» | razonamiento genérico que el modelo ya hace por sí solo |
| Paso a paso rígido de 12 etapas | microgestión que bloquea la mejor ruta |
| Dos reglas que se contradicen | el modelo elige una, y no sabes cuál |
| Nada que diga cómo verificar que quedó bien | el agujero más costoso de todos |
El costo es compuesto: contexto consumido en cada llamada, autonomía reducida, comportamiento inconsistente y reglas zombi que nadie borra porque ya nadie recuerda qué están sosteniendo.
El objetivo no es maximizar la reducción. Es maximizar calidad + autonomía + verificabilidad ÷ complejidad — por eso la skill conserva explícitamente lo que el modelo no puede inferir: identidad del proyecto, rutas y fuentes de verdad, branding, seguridad, compliance, integraciones y contratos de interfaz.
Cada instrucción recibe una categoría y una decisión. Sin evidencia suficiente, la skill prefiere TEST a KEEP.
CONTEXTO · GUARDRAIL · CRITÉRIO DE QUALIDADE · VERIFICAÇÃO · INTEGRAÇÃO/FERRAMENTA · PROCEDIMENTO REPETÍVEL · MICROGERENCIAMENTO · REDUNDÂNCIA · LEGADO/OBSOLETA · AMBÍGUA/NÃO COMPROVADA
KEEP · SIMPLIFY · MERGE · SPLIT · LOAD-ON-DEMAND · CONVERT-TO-CONTEXT · DELETE-CANDIDATE
| # | Sección |
|---|---|
| 1 | Resumen ejecutivo — los 5 problemas más grandes |
| 2 | Métricas — recuento por decisión y reducción estimada en % |
| 3 | Problemas por archivo (gravedad + justificación) |
| 4 | Candidatas a eliminación (motivo, riesgo, cómo probar) |
| 5 | Redundancias y conflictos |
| 6 | Skills — función, diagnóstico, recomendación |
| 7 | CLAUDE.md mínimo propuesto |
| 8 | Skills propuestas en versión reducida |
| 9 | Plan de ablación — versiones A / B / C en tareas reales |
| 10 | Top 10 de cambios por impacto ÷ riesgo |
Skill autocontenida: un archivo SKILL.md. Sin dependencias, sin build.
O SKILL.md queda en la raíz — la instalación es un cp.
git clone https://github.com/inematds/audit-ablacaocc.git
Aplica a todos los proyectos de tu máquina.
mkdir -p ~/.claude/skills/audit-ablacao cp audit-ablacaocc/SKILL.md ~/.claude/skills/audit-ablacao/SKILL.md
Así, la skill se versiona junto con el código y no se filtra a los demás proyectos.
mkdir -p .claude/skills/audit-ablacao cp /caminho/audit-ablacaocc/SKILL.md .claude/skills/audit-ablacao/SKILL.md
La invocación explícita elimina la lotería del disparador.
/audit-ablacao # o: "haz una auditoría de ablación de mi CLAUDE.md global"
Global cada ~6 meses o con el lanzamiento de un modelo; por proyecto cuando el CLAUDE.md supera ~150 líneas; por conjunto de skills cuando 3+ compiten por el mismo disparador.
/audit-ablacao audita as skills deste projeto # alcance en lenguaje natural
La skill no aplica nada — a propósito. Toma el Top 10 por impacto ÷ riesgo, aplícala, úsala en trabajo real durante algunos días y devuelve una instrucción solo cuando se repita el mismo fallo.
# línea de base de ablación usada internamente en Anthropic: CLAUDE_CODE_SIMPLE=1 claude # se ejecuta sin ningún prompt de sistema
Esta práctica cambia el resultado más que cualquier ajuste del prompt, y es el complemento natural de la limpieza: lo que sale del CLAUDE.md no se pierde, se convierte en skill.
Regla en CLAUDE.md se lee en toda ejecución, incluso en el 90% que no tiene nada que ver con ella. Dentro de una skill, solo consume contexto cuando la tarea corresponde — es el MOVE e o LOAD-ON-DEMAND del informe.
/nome-da-skill no depende de que la descripción coincida con tu frase. Cuando varias skills compiten por el mismo tema, la invocación explícita desempata — y evita una regla de enrutamiento en el CLAUDE.md.
En .claude/skills/, el procedimiento acompaña al repo, entra en el PR, se puede revisar y no contamina los demás proyectos.
Cuando el modelo tropieza, hay tres remedios: un mejor prompt (instrucción confusa), skill (falta un procedimiento repetible) o MCP (falta contexto inalcanzable). Elegir bien evita el reflejo de volcar otra regla más en el CLAUDE.md.
En la práctica: el CLAUDE.md se queda solo con lo que es verdad siempre — identidad, guardrails, fuentes de verdad, seguridad. Todo lo demás (procedimiento, formato, receta, integración) se convierte en skill, que se invoca directamente cuando sabes qué quieres.
La ablación no es un evento único. Es mantenimiento.
La receta que siguió este mismo repositorio. Sirve para cualquier skill o proyecto INEMA.
La guía va en guia/, nunca en la raíz — la raíz es para el código. Y es una página dentro del repo del proyecto, nunca un repositorio separado.
audit-ablacaocc/ ├── SKILL.md # una skill (en la raíz = instalable con un cp) ├── README.md ├── capa/capa.png # portada 1280x720 (skill capa-inema) ├── guia/index.html # landing + guía autocontenida └── doc/ # material de base
Revisa el autor antes antes de hacer commit: un autor que no coincide con la cuenta de destino es el motivo nº 1 de que se bloquee el deploy después.
git init -b main git config user.name "inematds" git config user.email "inematds@gmail.com" git add -A && git commit -m "feat: skill audit-ablacao + guia" gh repo create inematds/audit-ablacaocc --public --source=. --remote=origin --push
Crea primero el .github/workflows/pages.yml (YAML completo en el README) — el build legacy "deploy from a branch" se bloquea. Como la guía está en guia/, la URL pública termina en /guia/.
# con .github/workflows/pages.yml en el commit: gh api -X POST repos/inematds/audit-ablacaocc/pages -f build_type=workflow gh api repos/inematds/audit-ablacaocc/pages -q .html_url
Cuando la URL de Pages responda, publica en las 3 superficies INEMA — portal, inemabuscas y catálogo PRO.
/atualiza-portal https://inematds.github.io/audit-ablacaocc/guia/
Publicar = commit + push en origin. El deploy es automático mediante webhook git → Vercel / Pages: nada de abrir el dashboard, revisar el estado ni volver a activar el deploy.
# terminó cuando el push entró en origin y Pages responde 200