Skills

Shikhu: convierte tu base de código en autoexámenes y sigue tu cobertura de conocimiento

Shikhu es para desarrolladores que quieren que un agente de programación con IA refuerce su aprendizaje practicando sobre su propio código y que quieran seguir su cobertura de conocimiento a largo plazo. Requisito previo: aportar tu propia clave de API de OpenRouter; sin ella, ningún paso que implique generación con modelos puede ejecutarse.

Official source · arjunpatel7/shikhu

Install

uv tool install shikhu

Para quién es

Heredaste una base de código que no terminas de leer, o en el equipo siempre hay alguien preguntando: «¿Quién está usando esto en realidad?». Si tu objetivo es que un agente de programación con IA practique una y otra vez sobre tu propio código y convertir «¿cuánto entiendo realmente?» en una cifra que puedas seguir, el enfoque de Shikhu encaja mejor que un intercambio puntual de preguntas: convierte el aprendizaje en generación de preguntas y respuestas, la herramienta extrae preguntas del repositorio y registra cuáles acertaste y cuáles fallaste, y las skills que lo acompañan te guían por los puntos clave de los archivos que indiques. Es para quienes estén dispuestos a que un agente practique varias rondas sobre código real y acepten que «el modelo va a leer tu código».

Tu primer intento en 3 minutos

El camino oficial es único, y empieza instalando la herramienta de línea de comandos:

uv tool install shikhu

Tras instalarlo, shikhu queda en el PATH y se ejecuta en un entorno aislado, así que no choca con las dependencias de tu proyecto.

Hay dos requisitos previos: que uv esté disponible en el entorno y una clave de API de OpenRouter, ya sea en un .env en la raíz del repositorio (se carga automáticamente) o exportando OPENROUTER_API_KEY en tu shell, porque todas las llamadas a modelos pasan por OpenRouter.

Después, ejecútalo en la raíz del código que quieras aprender:

shikhu init

Este paso sí escribe archivos, así que confírmalo antes de ejecutarlo: crea la base de datos local coverage.db (y la añade automáticamente a .gitignore), genera .quizignore (que se usa como .gitignore, para dejar fuera del conjunto de preguntas los archivos de configuración o documentación) e instala las dos skills en el directorio de skills de tu agente.

Ubicación de instalación: las skills van a .claude/skills/ y/o .agents/skills/ si esos directorios ya existen en el repositorio (según la familia a la que pertenezca tu agente); si no existe ninguno, se crean ambos. Para reinstalarlas o instalarlas globalmente, usa shikhu install-skill, y añade --global para el ámbito global.

Para la primera invocación, elige algo de solo lectura y reversible: en un agente de programación compatible con skills, lanza /shikhu-study sobre un archivo pequeño, o usa /shikhu-inquiry para hacer una pregunta que solo afecte a una función. Antes de preguntar, comprueba que esa pregunta va a provocar una llamada a un modelo externo (a través de OpenRouter, consumiendo cuota) y solo entonces envíala.

Hay tres señales de éxito observables: en las respuestas del agente aparecen nombres de archivos, funciones y relaciones de llamada que existen de verdad en tu repositorio, en lugar de tutoriales genéricos; las preguntas que has hecho se convierten en semillas de examen y pueden volver a aparecer cuando se generen preguntas nuevas; y en la raíz del proyecto aparecen coverage.db y .quizignore.

Casos de uso

Caso uno: autoestudio dirigido de un módulo.

Primero construye el índice:

shikhu summarize

Escribe para cada archivo seguido un resumen generado por el modelo y guardado en caché; una llamada al modelo por archivo, y los archivos cuyo contenido no ha cambiado no se vuelven a procesar. Las skills y shikhu map se apoyan en esos resúmenes para decidir «qué archivos hay que mirar para esta pregunta». Una vez construido el índice, lanza /shikhu-study en el agente indicando el archivo o directorio que quieres aprender, y el agente te recorre uno a uno guiándose por las ubicaciones que señalan los resúmenes.

Caso dos: convertir preguntas del día a día en semillas de examen.

En el agente, usa /shikhu-inquiry para hacer una pregunta sobre tu propio código: por ejemplo, de dónde vienen los parámetros de un endpoint o por qué un fragmento de lógica está escrito así. Responde y, al mismo tiempo, registra la pregunta como semilla de examen; más adelante, cuando la herramienta genere exámenes a partir del código, esas semillas se tendrán en cuenta, y tus aciertos y fallos se seguirán como cobertura de conocimiento. Si quieres que las preguntas se concentren en el código de verdad, usa .quizignore para excluir los archivos de configuración y documentación.

Límites de uso

  • Necesitas aportar tu propia clave de API de OpenRouter; sin ella, ningún paso que implique generación con modelos puede ejecutarse.
  • shikhu summarize se factura por archivo: cuanto mayor sea el repositorio, más lenta y cara será la primera indexación; solo se reprocesan los archivos cuyo contenido haya cambiado.
  • Dónde acaban las skills depende de qué directorios de skills ya existan en el repositorio; si no existe ninguno, se crean ambos a la vez.
  • coverage.db se escribe en el proyecto pero entra automáticamente en .gitignore, no se sincroniza al control de versiones, y ni la cobertura ni el historial de respuestas se comparten entre los miembros del equipo.
  • La fuente explica el uso, los comandos y las ubicaciones de instalación de la herramienta de línea de comandos y de las dos skills; pero no indica qué lenguajes de programación admite, cómo se calcula exactamente la cobertura ni cómo se determinan los niveles de dificultad, así que no lo deduzcas del comportamiento habitual de otras herramientas de test.