Skills Agentes

Duckdb Docs

Busca en la documentación de DuckDB y DuckLake y en posts del blog, devolviendo fragmentos relevantes mediante búsqueda de texto completo contra un índice local cacheado.

Reemplaza a: Buscar manualmente en https://duckdb.org/docs o https://ducklake.select/docs

Solicitabash
Estrellas
538

en todo el repo

Actividad
34

0–100, la ruta de este skill

Actualizado
hace 5 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.4k tok

41 tok en reposo

Paquete
1 archivo

6 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add duckdb/duckdb-skills --skill duckdb-docs --agent claude-code

Se instala solo en este repositorio.

Este skill runs shell commands, reads environment config.

Qué hace

  • Extrae términos técnicos de la pregunta del usuario y ejecuta una búsqueda BM25 (full-text search) contra un índice local de la documentación de DuckDB/DuckLake
  • Descarga y cachea localmente el índice de búsqueda (docs-search.duckdb) si tiene más de 2 días o no existe
  • Filtra resultados por versión (lts, current, blog, stable, preview) según lo que pida el usuario
  • Presenta los fragmentos de documentación encontrados con título, sección, URL y texto, y sintetiza una respuesta a partir de ellos

Úsalo cuando

  • El usuario tiene una pregunta sobre DuckDB o DuckLake
  • El usuario menciona una función, palabra clave SQL o término técnico de DuckDB
  • El usuario pregunta sobre un post del blog de DuckDB o quiere contexto/motivación detrás de una feature

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • ¿Cómo encuentro el valor más frecuente en DuckDB?
    • Explícame cómo funciona GROUP BY ALL en DuckDB
    • ¿Qué es un catálogo en DuckLake?
    • Busca documentación sobre arg_max

    SKILL.md

    En inglés

    You are helping the user find relevant DuckDB or DuckLake documentation.

    Query: $@

    Follow these steps in order.

    Step 1 — Check DuckDB is installed

    command -v duckdb
    

    If not found, delegate to /duckdb-skills:install-duckdb and then continue.

    Step 2 — Ensure required extensions are installed

    duckdb :memory: -c "INSTALL httpfs; INSTALL fts;"
    

    If this fails, report the error and stop.

    Step 3 — Choose the data source and extract search terms

    The query is: $@

    Data source selection

    There are two search indexes available:

    Index Remote URL Local cache filename Versions Use when
    DuckDB docs + blog https://duckdb.org/data/docs-search.duckdb duckdb-docs.duckdb lts, current, blog Default — any DuckDB question
    DuckLake docs https://ducklake.select/data/docs-search.duckdb ducklake-docs.duckdb stable, preview Query mentions DuckLake, catalogs, or DuckLake-specific features

    Both indexes share the same schema:

    Column Type Description
    chunk_id VARCHAR (PK) e.g. stable/sql/functions/numeric#absx
    page_title VARCHAR Page title from front matter
    section VARCHAR Section heading (null for page intros)
    breadcrumb VARCHAR e.g. SQL > Functions > Numeric
    url VARCHAR URL path with anchor
    version VARCHAR See table above
    text TEXT Full markdown of the chunk

    By default, search DuckDB docs and filter to version = 'lts'. Use different versions when:

    • The user explicitly asks about current/nightly features → version = 'current'
    • The user asks about a blog post or wants background/motivation → version = 'blog'
    • The user asks about DuckLake → search the DuckLake index with version = 'stable'
    • When unsure, omit the version filter to search across all versions.

    Search terms

    If the input is a natural language question (e.g. "how do I find the most frequent value"), extract the key technical terms (nouns, function names, SQL keywords) to form a compact BM25 query string. Drop stop words like "how", "do", "I", "the".

    If the input is already a function name or technical term (e.g. arg_max, GROUP BY ALL), use it as-is.

    Use the extracted terms as SEARCH_QUERY in the next step.

    Step 4 — Ensure local cache is fresh

    The cache lives at $HOME/.duckdb/docs/CACHE_FILENAME (where CACHE_FILENAME is duckdb-docs.duckdb or ducklake-docs.duckdb per Step 3).

    First, ensure the directory exists:

    mkdir -p "$HOME/.duckdb/docs"
    

    Then check whether the cache file exists and is fresh (≤2 days old):

    CACHE_FILE="$HOME/.duckdb/docs/CACHE_FILENAME"
    if [ -f "$CACHE_FILE" ]; then
        MTIME=$(stat -f %m "$CACHE_FILE" 2>/dev/null || stat -c %Y "$CACHE_FILE")
        CACHE_AGE_DAYS=$(( ( $(date +%s) - MTIME ) / 86400 ))
    else
        CACHE_AGE_DAYS=999
    fi
    echo "Cache age: $CACHE_AGE_DAYS days"
    

    If CACHE_AGE_DAYS ≤ 2 → skip to Step 5.

    Otherwise (stale or missing) → fetch the index:

    duckdb -c "
    LOAD httpfs;
    LOAD fts;
    ATTACH 'REMOTE_URL' AS remote (READ_ONLY);
    ATTACH '$HOME/.duckdb/docs/CACHE_FILENAME.tmp' AS tmp;
    COPY FROM DATABASE remote TO tmp;
    " && mv "$HOME/.duckdb/docs/CACHE_FILENAME.tmp" "$HOME/.duckdb/docs/CACHE_FILENAME"
    

    Replace REMOTE_URL and CACHE_FILENAME per Step 3. If the fetch fails (network error), report the error and stop.

    Step 5 — Search the docs

    duckdb "$HOME/.duckdb/docs/CACHE_FILENAME" -readonly -json -c "
    LOAD fts;
    SELECT
        chunk_id, page_title, section, breadcrumb, url, version, text,
        fts_main_docs_chunks.match_bm25(chunk_id, 'SEARCH_QUERY') AS score
    FROM docs_chunks
    WHERE score IS NOT NULL
      AND version = 'VERSION'
    ORDER BY score DESC
    LIMIT 8;
    "
    

    Replace CACHE_FILENAME, SEARCH_QUERY, and VERSION per Step 3. Remove the AND version = 'VERSION' line if searching across all versions.

    If the user's question could benefit from both DuckDB docs and blog results, run two queries (one with version = 'stable', one with version = 'blog') or omit the version filter entirely.

    Step 6 — Handle errors

    • Extension not installed (httpfs or fts not found): run duckdb :memory: -c "INSTALL httpfs; INSTALL fts;" and retry.
    • ATTACH fails / network unreachable: inform the user that the docs index is unavailable and suggest checking their internet connection. The DuckDB index is hosted at https://duckdb.org/data/docs-search.duckdb and the DuckLake index at https://ducklake.select/data/docs-search.duckdb.
    • No results (all scores NULL or empty result set): try broadening the query — drop the least specific term, or try a single-word version of the query — then retry Step 5. If still no results, tell the user no matching documentation was found and suggest visiting https://duckdb.org/docs or https://ducklake.select/docs directly.

    Step 7 — Present results

    For each result chunk returned (ordered by score descending), format as:

    ### {section} — {page_title}
    {url}
    
    {text}
    
    ---
    

    After presenting all chunks, synthesize a concise answer to the user's original question ($@) based on the retrieved documentation. If the chunks directly answer the question, lead with the answer before showing the sources.

    Reproducido de duckdb/duckdb-skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere el binario duckdb instalado y las extensiones httpfs y fts (se instalan automáticamente si faltan).

    Variables de entorno:CACHE_AGE_DAYSCACHE_FILE

    Detalles

    Creador
    duckdb
    Categoría
    Bases de datos
    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de duckdb/duckdb-skills

    Este repo incluye 9 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack duckdb-skills entero y su comando de instalación

    Convierte cualquier archivo de datos a otro formato: CSV, Parquet, JSON, Excel, GeoJSON y más, usando DuckDB.

    Costo de contexto al activarse
    725 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    datos analitica

    Explora y consulta datos en S3, Cloudflare R2, GCS, MinIO o cualquier almacenamiento compatible con S3, sin necesidad de descargarlos.

    Costo de contexto al activarse
    852 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    datos analitica

    Responde preguntas sobre datos espaciales con DuckDB: ubicaciones, coordenadas, distancias, mapas, direcciones, formatos como GeoJSON, Shapefile, GeoPackage, GPX o GeoParquet, usando también Overture Maps.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 5 meses
    Permisos
    datos analitica

    Lee cualquier archivo de datos (CSV, JSON, Parquet, Avro, Excel, spatial, SQLite) o URL remota (S3, HTTPS) usando DuckDB. No sirve para código fuente.

    Costo de contexto al activarse
    919 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    datos analitica

    Busca en los logs de sesiones pasadas de Claude Code para recordar decisiones, patrones o trabajo pendiente. Úsalo cuando el usuario mencione conversaciones anteriores o necesites contexto previo.

    Costo de contexto al activarse
    348 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    productividad

    Adjunta un archivo de base de datos DuckDB para usarlo con /duckdb-skills:query. Explora el esquema (tablas, columnas, conteos) y escribe un state file SQL para restaurar la sesión con duckdb -init.

    Costo de contexto al activarse
    1.2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    bases de datos

    Skills relacionados

    Adjunta un archivo de base de datos DuckDB para usarlo con /duckdb-skills:query. Explora el esquema (tablas, columnas, conteos) y escribe un state file SQL para restaurar la sesión con duckdb -init.

    Costo de contexto al activarse
    1.2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    bases de datos

    Instala o actualiza extensiones de DuckDB. Cada argumento es un nombre simple (core) o name@repo (p. ej. magic@community). Usa --update para actualizar en vez de instalar.

    Costo de contexto al activarse
    590 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 5 meses
    Permisos
    bases de datos

    Ejecuta consultas SQL contra la base DuckDB adjunta o directamente sobre archivos, aceptando SQL crudo o preguntas en lenguaje natural con los modismos de DuckDB Friendly SQL.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    Permisos
    bases de datos