Explorar
Capta el sentido de un almacén o una base de datos local de DuckDB como lo haría un ingeniero de analytics: prioriza lo importante, profundiza de forma selectiva y persiste un mapa borrador. Es la habilidad emblemática, completamente de solo lectura. Absorbe la creación de perfiles y la inferencia de relaciones como capacidades; no son habilidades separadas.
Cómo usarlo
Ejecuta el motor a través del envoltorio. Imprime un único envoltorio JSON sanitizado y nada más; lee el envoltorio y decide el siguiente paso.
uv run "${CLAUDE_SKILL_DIR}/scripts/run.py" <subcomando> [flags]
Subcomandos, en el orden habitual:
connect test --path <archivo.duckdb>confirma una conexión de solo lectura e informa capacidades.explore inventory --rankdevuelve un resumen de objetos clasificados (recuentos y tamaños, nunca filas).explore profile <objetos>(separados por espacios o comas) devuelve perfiles de columnas, banderas PII registradas como (columna, categoría, confianza) y nunca valores de ejemplo, además de claves candidatas, el grano probable y advertencias de calidad de datos (por ejemplo, un id no único que se expandirá en las uniones). La confianza de una bandera genérica*_namese refina mediante evidencia de forma de valor del mismo escaneo, en ambas direcciones: los valores con forma de persona la corroboran, un vocabulario de referencia cerrado o etiquetas largas la reducen por debajo del umbral de bloqueo del cortafuegos, y la falta de evidencia no cambia nada (la bandera nunca se elimina). Los recuentos distintos son aproximados por escala, pero cualquier columna que parezca única dentro del ruido de aproximación se escala a un COUNT(DISTINCT) exacto (distinct_count_exact: true), por lo que las conclusiones de unicidad y grano se basan en pruebas; un prefijo~en una advertencia marca un recuento que aún es aproximado. Un objeto solicitado cuyo perfil almacenado en caché sigue siendo reciente (mismo conector, esquema sin cambios, dentro deprofile_freshness_hours, valor predeterminado 24) se sirve desde la caché (cache_hit_count) en lugar de volver a escanearse, por lo que perfilar una tabla quemapacaba de escribir no cuesta nada al usarla; pasa--refreshpara forzar un nuevo escaneo cuando la fuente cambió de una manera que la verificación de metadatos gratuita no puede ver.explore relationshipsdevuelve uniones inferidas y declaradas con confianzas, además de notas que explican qué examinó la inferencia (por lo que una lista vacía tiene significado). Añade--verifypara medir cada unión inferida con una sonda de superposición agregada (fracción huérfana, confianza ajustada).explore mapescribe o actualiza la caché.dex/e imprime un resumen (--verifytambién funciona aquí). Más allá de 50 objetos, solo perfila los 25 principales por rango y lo indica ennotes(conskipped_count); pasa--fullpara perfilarlo todo. En un re-mapeo, los objetos omitidos en esta ejecución conservan sus perfiles anteriores (carried_forward_count), cada uno sellado con su propioprofiled_atpara que el desfase sea visible en lugar de que los detalles de la columna desaparezcan silenciosamente. Un objeto seleccionado cuyo perfil en caché sigue siendo reciente (mismo conector, esquema sin cambios, perfilado dentro deprofile_freshness_hours, valor predeterminado 24) se reutiliza sin un nuevo escaneo (cache_hit_count), por lo que las reejecuciones no cuestan nada al usarlas; pasa--refreshpara forzar un re-perfilado completo cuando la fuente cambió de una manera que la verificación de metadatos gratuita no puede ver (por ejemplo, las filas cambiaron pero el esquema no).explore relationshipsy el independienteexplore profilereutilizan perfiles recientes de la misma manera.explore diagram [--full]renderiza el mapa almacenado en caché como un diagrama ER de Mermaid endata.mermaid. Gratuito y sin conexión (lee la caché, nunca el almacén), por lo que es seguro reejecutarlo mientras se da forma a la imagen. Reproduce la cadena textualmente en un bloque ```mermaid con ficha para que el humano pueda verlo, y escríbelo en un archivo.mmdo markdown cuando quiera uno en disco: el motor deliberadamente no escribe ningún archivo. Nunca redibujes ni