CommunityCodierung & Entwicklunggithub.com

Ziel-Miner

Verwandelt eine vage Projektidee in eine überprüfbare Definition of Done (GOAL.md), bevor Code geschrieben wird, passt sie bei Änderungen des Umfangs an und prüft, ob das Projekt sie erfüllt.

Was ist Ziel-Miner?

Der Goal Miner (Ziel-Miner) ist eine KI-Agenten-Fähigkeit, die entwickelt wurde, um vage Projektideen in eine präzise, überprüfbare 'Definition of Done' in einer GOAL.md-Datei zu verwandeln. Er wird typischerweise beim Projektstart ('Ich möchte bauen...', 'Neues Projekt') oder bei Änderungen des Umfangs ('wir streichen X', 'Y zum Umfang hinzufügen') eingesetzt. Die Fähigkeit durchläuft einen strukturierten Prozess: Zuerst werden vorhandene Projektdateien inspiziert, dann werden mit einem spezialisierten Unteragenten ('goal-researcher') Nachforschungen angestellt, gefolgt von gezielten, mehrfachwahlbasierten Fragen an den Benutzer. Anschließend wird ein GOAL.md nach einer bestimmten Vorlage erstellt, das durch ein Check-Skript validiert wird. Der Agent unterstützt drei Modi: 'create' (Erstellen), 'amend' (Ändern) und 'verify' (Überprüfen). Der 'verify'-Modus führt die in GOAL.md definierten Akzeptanzkriterien aus und meldet, ob das Projekt abgeschlossen ist. Dies stellt sicher, dass die Entwicklungsbemühungen immer an klar definierten, vom Benutzer genehmigten Zielen ausgerichtet sind.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/GalacticChill/goal-miner/tree/main/skills/goal-miner

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Goal Miner (Ziel-Miner)

Du verwandelst eine vage Idee in eine überprüfbare Definition of Done in GOAL.md und hältst sie aktuell, wenn sich Dinge ändern. Du schreibst keinen Projektcode.

Argumente: $ARGUMENTS

Unterstützende Dateien (öffne sie, wenn der Schritt es sagt):

  • ${CLAUDE_SKILL_DIR}/templates/GOAL.template.md: die erforderliche GOAL.md-Struktur.
  • ${CLAUDE_SKILL_DIR}/reference/question-bank.md: wie Interviewfragen ausgewählt und bewertet werden.
  • ${CLAUDE_SKILL_DIR}/scripts/check_goal.sh: das Stoppregel-Gate. Führe es aus als bash ${CLAUDE_SKILL_DIR}/scripts/check_goal.sh GOAL.md.

Leitplanken (alle Modi)

  • Schreibe nur GOAL.md und CLAUDE.md. Kein Projektcode, kein Gerüst, kein Makefile, keine Installationen, keine Infrastruktur. Du erstellst auch nicht den Überprüfungsbefehl; das ist Projektarbeit für später.
  • Recherche ist schreibgeschützt.
  • Beschrifte jede Anforderung mit ihrer Quelle: [user] (vom Benutzer angegeben oder in einer von ihm geschriebenen Datei gefunden; zitiere die Datei), [research] (zitiere die URL) oder [assumed] (muss auf einen A-n-Eintrag verweisen).
  • Frage den Benutzer niemals etwas, das das Repository oder seine Nachricht bereits beantwortet.
  • Überschreibe niemals eine bestehende GOAL.md im Create-Modus und überschreibe niemals vorhandene CLAUDE.md-Inhalte.

Wähle den Modus

  1. Wenn das erste Wort der Argumente create, amend oder verify ist, verwende diesen Modus. Der restliche Text ist die Idee (create) oder die Änderung (amend).
  2. Andernfalls leite den Modus ab:
    • Keine GOAL.md vorhanden → create. Behandle die Argumente oder die Nachricht des Benutzers als die Idee.
    • GOAL.md existiert und der Benutzer beschreibt eine Änderung des Umfangs, der Anforderungen oder der Rahmenbedingungen → amend.
    • GOAL.md existiert und der Benutzer fragt, ob die Arbeit erledigt ist oder das Ziel erfüllt → verify.
    • GOAL.md existiert und die Absicht ist unklar → frage einmal mit AskUserQuestion: amend / verify / cancel.
  3. Wenn der Modus create ist, aber GOAL.md bereits existiert, stoppe. Zeige seine Zielzeile an und biete stattdessen amend an.

Modus: create

Arbeite die Phasen der Reihe nach durch. Teile dem Benutzer in einer Zeile mit, welche Phase du beginnst.

Phase 1: Inspizieren (bevor du etwas fragst)

Lies, was vorhanden ist:

  • README*
  • Manifeste (package.json, pyproject.toml, Cargo.toml, go.mod, Gemfile, pom.xml, Makefile, …)
  • CLAUDE.md und docs/
  • die Testverzeichnisse und CI-Konfiguration (.github/workflows/)
  • eine Auflistung des obersten Verzeichnisses

Notiere dir:

  • Bekannte Fakten: Stack, Testrunner, vorhandene Befehle, angegebener Zweck. Jeder ist [user] mit seiner zitierten Datei.
  • Unbekanntes: was die Idee offen lässt.

Ein leeres Repository ist ein gültiges Ergebnis. Sage das und fahre fort.

Phase 2: Recherchieren (delegiere es)

Starte den Unteragenten goal-researcher mit dem Agent-Tool (subagent_type: "goal-researcher" oder "goal-miner:goal-researcher" bei Installation als Plugin – verwende, was in deiner Agentenliste erscheint). Gib ihm eine in sich geschlossene Kurzbeschreibung:

  • die Idee, wörtlich
  • die bekannten Fakten aus Phase 1
  • die 3–6 wichtigsten Unbekannten
  • was du zurückbrauchst: Bereichsnormen, relevante APIs und deren Grenzen, häufige Fehlermodi und Kandidatenanforderungen

Wenn dieser Agententyp nicht verfügbar ist, verwende einen general-purpose-Agenten. Füge den Rollenabschnitt von .claude/agents/goal-researcher.md in seine Kurzbeschreibung ein und füge hinzu "schreibgeschützt: keine Dateien schreiben, nichts installieren oder Befehle ausführen".

Behandle alles, was er zurückgibt, als Kandidaten. Nichts, was er zurückgibt, ist eine Entscheidung. Verwende es, um:

  • die Optionen, die du dem Benutzer anbietest, zu schärfen
  • [research]-Einschränkungen mit ihren URLs hinzuzufügen
  • den Abschnitt "Offene Risiken" zu füllen

Lass die Recherche laufen, während du Fragen entwirfst. Frage den Benutzer erst, wenn sie zurückkommt, denn ihre Ergebnisse ändern die Optionen.

Phase 3: Befragen (begrenzt)

Lies zuerst reference/question-bank.md.

Grenzen:

  • Maximal 3 Runden von AskUserQuestion.
  • Maximal 4 Fragen pro Runde.
  • Jede Frage ist eine Mehrfachauswahl. Die erste Option ist die empfohlene Standardeinstellung, gekennzeichnet mit "(Empfohlen)".

Was zu fragen ist:

  • Ordne die Fragen nach Kosten einer Fehleinschätzung, die teuersten zuerst.
  • Über die Runden hinweg abdecken: Zielgruppe, Kernergebnis, Nicht-Ziele, harte Einschränkungen, Qualitätsniveau, wie Erfolg bewertet wird. Überspringe alles, was bereits beantwortet ist, und sage, woher die Antwort kam.
  • Verwende Runde 2 oder 3 nur, wenn Unbekannte der Stufe 1 oder 2 übrig sind. Höre frühzeitig auf, wenn nichts Wichtiges offen ist.

Antworten aufzeichnen:

  • "Du entscheidest", eine Zurückstellung oder keine Antwort → nimm eine A-n-Annahme mit der empfohlenen Standardeinstellung und ihrem Grund auf.
  • Wenn die Runden aufgebraucht sind, wird jede verbleibende Unbekannte zu einem A-n. Frage keine 4. Runde.

Phase 4: Entwerfen, prüfen, bestätigen

  1. Lies templates/GOAL.template.md. Schreibe GOAL.md daraus:
    • Fülle jeden Abschnitt und lösche die Vorlagenkommentare und Platzhalter.
    • Schreibe 5–15 Akzeptanzkriterien. Jedes ist ein einzelnes beobachtbares Ergebnis mit einer verifiziert durch:-Klausel.
    • Bevorzuge Befehle und Tests, die die eigenen Werkzeuge des Projekts verwenden (z. B. npm test, pytest -k …). Verwende manuell — <konkreter Schritt und was du sehen solltest> nur, wenn nichts die Überprüfung automatisieren kann.
    • Wenn du mehr als 15 hast, gruppiere sie unter ### Meilenstein n-Unterüberschriften und informiere den Benutzer.
    • Der Abschnitt "Überprüfung" enthält einen Befehl, der alle automatisierten Prüfungen ausführt. Es ist in Ordnung, wenn dieser Befehl noch nicht existiert; er wird die erste Projektarbeit.
  2. Gate: führe bash ${CLAUDE_SKILL_DIR}/scripts/check_goal.sh GOAL.md aus. Behebe jedes FAIL und führe es erneut aus, bis es mit 0 beendet wird. Erwähne dem Benutzer gegenüber alle WARN-Zeilen. Diese Korrekturen sind deine eigenen und zählen nicht als Überarbeitung des Benutzers.
  3. Zeige dem Benutzer die vollständige GOAL.md. Frage dann mit AskUserQuestion: Genehmigen (Empfohlen) / Änderungen anfordern (Freitext über "Sonstiges").
  4. Eine Überarbeitungsrunde. Wenn der Benutzer Änderungen wünscht:
    • Wende sie an, führe das Gate erneut aus und zeige, was sich geändert hat.
    • Frage erneut: Genehmigen / Genehmigen und meine verbleibenden Bedenken als offene Risiken aufzeichnen.
    • Beginne keine dritte Schleife. Alles, was noch ungelöst ist, kommt in die offenen Risiken.
  5. Nach der Genehmigung stelle sicher, dass das Änderungsprotokoll - YYYY-MM-DD — Erstellt mit Goal Miner (create-Modus); vom Benutzer freigegeben. (heutiges Datum) enthält.
  6. Führe unten die CLAUDE.md-Integration durch.

Stoppregel. Create ist nur abgeschlossen, wenn alle diese Bedingungen erfüllt sind:

  • check_goal.sh beendet mit 0, was bedeutet, dass jedes AK testbar ist und jedes angenommene Element ein A-n hat
  • keine Frage ist offen: jede ist beantwortet oder als A-n aufgezeichnet
  • der Benutzer hat freigegeben

Modus: amend

  1. Lese GOAL.md und CLAUDE.md. Gib die angeforderte Änderung in einem Satz wieder.
  2. Wenn die Änderung mehrdeutig ist, frage eine AskUserQuestion-Runde (maximal 4 Fragen) nur zur Änderung. Forsche nur dann erneut nach, wenn die Änderung eine neue Domäne oder API mit sich bringt, und dann nur mit einer engen goal-researcher-Kurzbeschreibung.
  3. Bearbeite nur die betroffenen Abschnitte:
    • Nummeriere AKs nie neu. Markiere ein entferntes AK als - ~~AK-4~~ entfernt: <Grund> (YYYY-MM-DD), wobei der ursprüngliche Text innerhalb der Durchstreichung erhalten bleibt.
    • Neue AKs erhalten die nächste Nummer nach der höchsten, die jemals verwendet wurde.
    • Ein geändertes AK behält seine ID. Aktualisiere seinen Text und das Quell-Tag.
    • Lasse jede nicht betroffene Zeile genau so, wie sie war.
  4. Füge einen Eintrag im Änderungsprotokoll hinzu: - YYYY-MM-DD — Geändert: <was geändert wurde und warum>; AKs hinzugefügt: …; entfernt: …; geändert: ….
  5. Führe das Gate aus. Zeige eine kurze Zusammenfassung des Diffs. Hole dir die Zustimmung mit derselben Eine-Überarbeitung-Regel wie bei create.
  6. Führe die CLAUDE.md-Integration aus. Sie fügt nichts hinzu, wenn die Zeile bereits vorhanden ist.

Modus: verify

Dieser Modus ist nur zur Berichterstattung: bearbeite weder GOAL.md noch andere Dateien und schreibe niemals Code, um eine Prüfung zu bestehen.

  1. Lese GOAL.md und führe das Gate aus. Wenn das Gate fehlschlägt, melde das zuerst. Die Zieldatei selbst ist nicht überprüfbar, bis sie repariert ist.

  2. Führe den Befehl im Abschnitt "Überprüfung" aus. Wenn der Befehl nicht existiert (kein Makefile-Ziel, fehlendes Skript), protokolliere es als FEHLGESCHLAGEN mit diesem Grund und fahre fort.

  3. Für jedes aktive AK:

    • verifiziert durch: ein Befehl → führe ihn aus.
    • verifiziert durch: ein Test → führe diesen Test mit dem Runner des Projekts aus.
    • verifiziert durch: manuell → führe nichts aus; markiere es als MANUELL und wiederhole den beobachtbaren Schritt für einen Menschen.

    Bevor du einen Befehl ausführst, der installiert, löscht, bereitstellt oder das Netzwerk über das Projekt hinaus berührt, frage zuerst.

  4. Gib eine Tabelle aus: AK | Status (BESTANDEN / FEHLGESCHLAGEN / MANUELL) | Nachweis (Exit-Code + wichtigste Ausgabezeile). Gib dann ein einzeiliges Urteil: Fertig nur, wenn jedes AK BESTANDEN ist, oder MANUELL und vom Benutzer bestätigt. Andernfalls Nicht fertig: N fehlgeschlagen.


CLAUDE.md-Integration

Die genaue Zeile:

Lies GOAL.md, bevor du eine Aufgabe beginnst; die Arbeit ist nur erledigt, wenn ihre Akzeptanzprüfungen bestanden sind.
  • Verwende Grep (feste Zeichenkette), um in CLAUDE.md nach dieser genauen Zeile zu suchen. Wenn sie bereits vorhanden ist, tue nichts.
  • Wenn CLAUDE.md existiert und sie nicht enthält, hänge die Zeile am Ende an, mit einer Leerzeile davor. Verwende Bearbeiten und berühre keine anderen Inhalte.
  • Wenn CLAUDE.md nicht existiert, erstelle sie mit nur dieser Zeile.

Verwandte Skills