Rules Distillation Report
Skill: destilar-reglas-desde-skills · CULTIVA IA · Agentes-IA
✓ Completado 2026-06-18T09:45:12Z
Fase 1
Inventario
56 skills · 8 reglas · 32 headings
Fase 2
Análisis LLM
3 lotes temáticos · fusión cross-batch
Fase 3
Revisión y Ejecución
5 candidatos · 4 aprobados · 1 omitido
56
Skills escaneadas
8
Ficheros de reglas (32 headings)
5
Candidatos identificados
4
Reglas aplicadas
Fase 1 — Inventario
SKILLS ESCANEADAS (muestra de 10 relevantes)
parallel-subagent-batch-merge llm-memory-trust-boundary llm-social-agent-anti-pattern iterative-retrieval continuous-agent-loop agent-harness-construction context-compaction-strategy boundary-type-conversion prompt-injection-defense output-schema-validation
+46 skills adicionales en 7 categorías
FICHEROS DE REGLAS ACTUALES
security.md5 headings
coding-style.md6 headings
testing.md4 headings
performance.md3 headings
agent-patterns.md4 headings
data-handling.md3 headings
api-usage.md4 headings
output-formats.md3 headings
Fase 2 — Candidatos (Tabla Resumen)
# Principio Veredicto Destino Confianza Estado
1 Normalizar, validar tipos y sanitizar el output de un LLM antes de reutilizarlo en otro paso del pipeline Nueva Sección coding-style.md §LLM Output Validation Alta ✓ Aplicado
2 Definir condiciones de parada explícitas (max iteraciones + condición semántica) en todos los bucles de agente Nueva Sección agent-patterns.md §Stop Conditions Alta ✓ Aplicado
3 Compactar el contexto en los límites de fase, no a mitad de tarea; usar resúmenes estructurados, no truncación bruta Añadir performance.md §Context Window Alta ✓ Aplicado
4 Tratar el output de LLMs almacenado en memoria o knowledge stores como datos no confiables; sanitizar en escritura, validar en lectura Revisión security.md §Input Validation Alta ✓ Aplicado
5 Separar tipos de lógica de negocio de los tipos del framework de I/O en límites de sistema Demasiado Específico → Ver skill: boundary-type-conversion Media Omitido
Fase 2 — Detalles por Candidato
1
Validación de Output LLM
Nueva Sección ✓ Aplicado coding-style.md §LLM Output Validation
Evidencia (3 skills)
parallel-subagent-batch-merge §Output Merging llm-social-agent-anti-pattern §Trust Boundary output-schema-validation §Schema Check
Riesgo de Violación
Si el output del LLM no se normaliza antes de pasarlo al siguiente paso del pipeline, el drift de formato, los type mismatches o los errores de sintaxis rompen el procesamiento downstream silenciosamente.
Borrador Aplicado
## LLM Output Validation - Normaliza siempre el output de un LLM (strip whitespace, lower/upper según contrato) antes de usarlo en el siguiente paso del pipeline. - Valida el tipo esperado: si el contrato dice JSON, parsea y valida el schema antes de acceder a campos; si espera un número, convierte y maneja el fallo. - Sanitiza el output cuando vaya a persistirse en base de datos, cola o contexto compartido entre agentes. - Nunca asumas que el LLM respetó el formato: el mismo prompt puede devolver estructuras distintas en calls consecutivos. Ver skill: parallel-subagent-batch-merge, output-schema-validation
2
Condiciones de Parada en Bucles de Agente
Nueva Sección ✓ Aplicado agent-patterns.md §Stop Conditions
Evidencia (4 skills)
iterative-retrieval §Loop Design continuous-agent-loop §Guardian agent-harness-construction §Safety llm-social-agent-anti-pattern §Infinite Loop
Riesgo de Violación
Un bucle de agente sin stop-condition explícita puede consumir créditos ilimitadamente, entrar en estado degenerado o hacer llamadas API hasta el rate-limit; los LLMs no detectan esto por sí mismos.
Borrador Aplicado
## Stop Conditions - Todo bucle de agente DEBE tener: (1) un límite numérico máximo de iteraciones, y (2) una condición semántica de éxito. - Declara las condiciones ANTES del primer step del loop, no al final; el código que comprueba la condición de parada no debe estar dentro del LLM. - Loggea el motivo de parada (límite alcanzado vs. condición cumplida) en cada ejecución para diagnóstico posterior. - En continuous agents: implementa un guardian externo (proceso supervisor) independiente del propio agente. Ver skill: iterative-retrieval, continuous-agent-loop, agent-harness-construction
3
Compactación de Contexto en Límites de Fase
Añadir ✓ Aplicado performance.md §Context Window
Evidencia (2 skills)
context-compaction-strategy §Phase Boundaries parallel-subagent-batch-merge §Context Budget
Riesgo de Violación
Compactar a mitad de tarea trunca contexto activo y provoca que el LLM pierda referencias recientes; compactar tarde hace que tareas largas fallen al llegar al límite de tokens sin advertencia.
Borrador Añadido a §Context Window
# Adición a performance.md §Context Window - Compacta el contexto en los límites de fase (entre Fase N y Fase N+1), nunca a mitad de una tarea activa. - Usa resúmenes estructurados (JSON o bullet points con campos fijos) en lugar de truncación bruta; preserva los datos críticos explícitamente. - Incluye un presupuesto de tokens en el diseño del agente: reserva headroom (≥20%) para el output de la fase final. Ver skill: context-compaction-strategy
4
Límite de Confianza en Output LLM en Memoria
Revisión ✓ Aplicado security.md §Input Validation
Evidencia (2 skills)
llm-memory-trust-boundary §Trust Model prompt-injection-defense §Stored Prompts
Razón de la Revisión
security.md §Input Validation solo cubría validación de input humano. El vector de prompt injection acumulado (LLM output → memoria → re-inyección) no estaba representado, aunque es el riesgo predominante en agentes multi-step.
Antes / Después
ANTES (security.md §Input Validation)
Sanitiza siempre el input del usuario antes de usarlo en prompts o queries. Usa allowlists cuando sea posible. Evita interpolación directa de strings de usuario en SQL o comandos shell.
DESPUÉS (con adición)
Sanitiza siempre el input del usuario antes de usarlo en prompts o queries. Usa allowlists cuando sea posible. Evita interpolación directa de strings de usuario en SQL o comandos shell. ## LLM Output Trust Boundary Trata el output de un LLM como dato no confiable cuando se almacene en memoria, knowledge store o contexto compartido. Sanitiza en escritura; valida en lectura antes de re-inyectar en otro prompt. Ver skill: llm-memory-trust-boundary
5
Separación de Tipos Negocio / Framework I/O
Demasiado Específico Omitido
Este principio es válido pero aplica únicamente en contextos con sistemas de tipos explícitos (TypeScript, Python con Pydantic). Mantener en skill boundary-type-conversion; no elevar a regla global.
Fase 3 — Log de Ejecución
$ /rules-distill
──── Rules Distillation — Phase 1: Inventory
Skills: 56 files scanned
Rules: 8 files (32 headings indexed)
Proceeding to cross-read analysis...
[Subagent: Lote 1 — agent/meta skills (22 skills) ...]
[Subagent: Lote 2 — coding/pattern skills (18 skills) ...]
[Subagent: Lote 3 — data/security skills (16 skills) ...]
[Cross-batch merge: 1 duplicado eliminado, 1 candidato cross-batch promovido]
 
Candidatos: 5 identificados · Usuario aprobó 1,2,3,4 · Omitido 5
 
Aplicado: coding-style.md §LLM Output Validation09:45:03Z
Aplicado: agent-patterns.md §Stop Conditions09:45:05Z
Aplicado: performance.md §Context Window (append)09:45:07Z
Revisado: security.md §Input Validation (+LLM Output Trust Boundary)09:45:09Z
Omitido: Boundary Type Conversion (demasiado específico)09:45:09Z
 
Results saved to ~/.claude/skills/destilar-reglas-desde-skills/results.json09:45:12Z
results.json (extracto)
{ "distilled_at": "2026-06-18T09:45:12Z", "skills_scanned": 56, "rules_scanned": 8, "candidates": { "llm-output-validation": { "principle": "Normalize, type-check, and sanitize LLM output before reuse in pipeline", "verdict": "New Section", "target": "coding-style.md §LLM Output Validation", "evidence": ["parallel-subagent-batch-merge", "output-schema-validation"], "status": "applied" }, "agent-stop-conditions": { "principle": "Define explicit stop conditions (max-iter + semantic) for all agent loops", "verdict": "New Section", "target": "agent-patterns.md §Stop Conditions", "evidence": ["iterative-retrieval", "continuous-agent-loop", "agent-harness-construction"], "status": "applied" }, "context-phase-compaction": { "principle": "Compact context at phase boundaries, not mid-task; use structured summaries", "verdict": "Append", "target": "performance.md §Context Window", "evidence": ["context-compaction-strategy", "parallel-subagent-batch-merge"], "status": "applied" }, "llm-output-trust-boundary": { "principle": "Treat LLM output as untrusted when stored in memory or knowledge stores", "verdict": "Revise", "target": "security.md §Input Validation", "evidence": ["llm-memory-trust-boundary", "prompt-injection-defense"], "status": "applied" }, "boundary-type-separation": { "principle": "Separate business logic types from I/O framework types at system boundaries", "verdict": "Too Specific", "target": "skill: boundary-type-conversion", "evidence": ["boundary-type-conversion"], "status": "skipped" } } }