Skills

Shikhu: Aus deiner Codebasis Selbsttests machen und deine Wissensabdeckung verfolgen

Shikhu richtet sich an Entwickler, die KI-Coding-Agenten an eigenem Code selbst lernen lassen und die Wissensabdeckung langfristig verfolgen wollen. Voraussetzung ist ein eigener OpenRouter API Key – ohne ihn lässt sich kein Schritt ausführen, der Modelle generiert.

Official source · arjunpatel7/shikhu

Install

uv tool install shikhu

Für wen das gedacht ist

Du hast eine Codebasis geerbt, die du nie fertig liest, oder im Team fragt jemand ständig: „Wer benutzt dieses Ding eigentlich?“. Wenn du das Ziel hast, einen KI-Coding-Agenten immer wieder an deinem eigenen Code üben zu lassen und aus „wie viel verstehe ich eigentlich?“ eine Zahl zu machen, die du verfolgen kannst, passt Shikhus Ansatz besser als ein einmaliges Frage-Antwort-Spiel: Es verwandelt Lernen in Fragen und Antworten, das Tool zieht Fragen aus dem Repository und merkt sich, was du richtig und falsch hattest, und die begleitenden Skills führen dich durch die Kernpunkte in den Dateien, die du angibst. Das lohnt sich für alle, die einen Agenten ein paar Runden an echtem Code üben lassen und akzeptieren, dass „das Modell deinen Code liest“.

In 3 Minuten zum ersten Versuch

Der offizielle Weg ist ein einziger, und der beginnt mit der Installation des Kommandozeilenwerkzeugs:

uv tool install shikhu

Nach der Installation liegt shikhu im PATH und läuft in einer isolierten Umgebung, sodass es nicht mit den Abhängigkeiten deines Projekts kollidiert.

Es gibt zwei Voraussetzungen: erstens uv in der Umgebung, zweitens einen OpenRouter API Key – entweder in einer .env im Repository-Stammverzeichnis (wird automatisch geladen) oder exportiert als OPENROUTER_API_KEY in deiner Shell, denn alle Modellaufrufe laufen über OpenRouter.

Dann führst du das im Stammverzeichnis des Codes aus, den du lernen willst:

shikhu init

Dieser Schritt schreibt tatsächlich Dateien, also prüf das vorher: Er legt die lokale Datenbank coverage.db an (und trägt sie automatisch in .gitignore ein), erzeugt .quizignore (verwendet wie .gitignore, um Konfigurations- und Dokumentationsdateien aus dem Fragenpool auszuschließen) und installiert die beiden Skills in das Skill-Verzeichnis deines Agenten.

Installationsort: Die Skills landen in .claude/skills/ und/oder .agents/skills/, sofern diese Verzeichnisse im Repository bereits existieren (je nachdem, zu welcher Familie dein Agent gehört); fehlen beide, werden beide angelegt. Zum Neuinstallieren oder für eine globale Installation nutzt du shikhu install-skill, mit --global für den globalen Bereich.

Beim ersten Trigger wähle etwas Nur-Lesen und Umkehrbares: Rufe in einem Skill-fähigen Coding-Agenten /shikhu-study mit einer kleinen Datei auf oder stelle mit /shikhu-inquiry eine Frage, die nur eine einzelne Funktion betrifft. Prüf vor der Frage, dass sie einen externen Modellaufruf auslöst (über OpenRouter, kostet Kontingent), und sende sie erst danach ab.

Drei beobachtbare Erfolgssignale: In den Antworten des Agenten tauchen echte Datei-, Funktions- und Aufrufsbeziehungen aus deinem Repository auf statt generischer Tutorial-Prosa; Fragen, die du gestellt hast, werden zu Quiz-Seeds und tauchen später beim Generieren neuer Fragen wieder auf; im Projektstamm erscheinen coverage.db und .quizignore.

Anwendungsfälle

Fall eins: ein bestimmtes Modul gezielt im Selbststudium lernen.

Zuerst den Index aufbauen:

shikhu summarize

Er schreibt für jede getrackte Datei eine zwischengespeicherte, modellgenerierte Zusammenfassung; ein Modellaufruf pro Datei, und Dateien mit unverändertem Inhalt werden nicht erneut verarbeitet. Die Skills und shikhu map nutzen diese Zusammenfassungen, um zu entscheiden, „welche Dateien muss ich für diese Frage ansehen?“. Sobald der Index steht, rufst du im Agenten /shikhu-study mit der zu lernenden Datei oder dem Verzeichnis auf, und der Agent führt dich anhand der in den Zusammenfassungen genannten Stellen Stück für Stück hindurch.

Fall zwei: alltägliche Fragen in Quiz-Seeds verwandeln.

Stelle im Agenten mit /shikhu-inquiry eine Frage zu deinem eigenen Code – etwa woher die Parameter eines Endpunkts kommen oder warum eine Logik so geschrieben ist. Der Agent antwortet und vermerkt die Frage gleichzeitig als Quiz-Seed; wenn das Tool später Quizzes aus dem Code erzeugt, fließen diese Seeds mit ein, und deine Trefferquote wird als Wissensabdeckung verfolgt. Wenn die Fragen sich auf echten Code konzentrieren sollen, schließe Konfigurations- und Dokumentationsdateien über .quizignore aus.

Grenzen

  • Du brauchst einen eigenen OpenRouter API Key; ohne ihn lässt sich kein Schritt ausführen, der Modelle generiert.
  • shikhu summarize rechnet pro Datei ab: Je größer das Repository, desto langsamer und teurer ist der erste Indexlauf; nur Dateien mit geändertem Inhalt werden erneut verarbeitet.
  • Wo die Skills landen, hängt davon ab, welche Skill-Verzeichnisse im Repository bereits existieren; fehlen beide, werden beide angelegt.
  • coverage.db liegt im Projekt, wird aber automatisch in .gitignore aufgenommen, nicht in die Versionsverwaltung synchronisiert und weder Abdeckung noch Antwortverlauf zwischen Teammitgliedern geteilt.
  • Die Quelle beschreibt Nutzung, Befehle und Installationsorte des Kommandozeilenwerkzeugs und der beiden Skills; welche Programmiersprachen unterstützt werden, wie die Abdeckung genau berechnet wird und wie die Schwierigkeitsstufen eingestuft werden, steht dort nicht – leite das nicht aus dem Verhalten üblicher Testwerkzeuge ab.