协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
evolve-skill【开发与工程】Entwickelt einen bestehenden Skill weiter, indem sein Inhalt direkt verfeinert oder eine fortgeschrittene Variante erstellt wird. Behandelt die Bewertung des aktuellen Skills, das Sammeln von Anforderungen, die Wahl des Umfangs (Verfeinerung vs. Variante), das Anwenden von Aenderungen, das Aktualisieren von Versions-Metadaten und die Synchronisierung…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Einen Skill verbessern, erweitern oder eine fortgeschrittene Variante eines Skills erstellen, der urspruenglich mit create-skill verfasst wurde. Dieses Verfahren behandelt die Wartungsseite des Skill-Lebenszyklus: Luecken bewerten, gezielte Verbesserungen anwenden, Versionen erhoehen und Registry sowie Querverweise synchron halten.
create-r-package und create-r-package-advanced)Die bestehende SKILL.md lesen und jeden Abschnitt gegen die Qualitaetscheckliste bewerten:
| Abschnitt | Was pruefen | Haeufige Probleme |
|---|---|---|
| Frontmatter | Alle Pflichtfelder vorhanden, description < 1024 Zeichen | Fehlende tags, veraltete version |
| When to Use | 3-5 konkrete Ausloesebedingungen | Vage oder ueberlappende Ausloser |
| Inputs | Erforderlich vs. optional klar getrennt | Fehlende Standards fuer optionale Eingaben |
| Procedure | Jeder Schritt hat Code + Expected + On failure | Fehlende On-failure-Bloecke, Pseudocode statt echter Befehle |
| Validation | Jedes Element ist binaer bestanden/nicht bestanden | Subjektive Kriterien ("Code ist sauber") |
| Common Pitfalls | 3-6 mit Ursache und Vermeidung | Zu generisch ("sei vorsichtig") |
| Related Skills | 2-5 gueltige Skill-Referenzen | Veraltete Verweise auf umbenannte/entfernte Skills |
# Read the skill
cat skills/<skill-name>/SKILL.md
# Check frontmatter parses
head -20 skills/<skill-name>/SKILL.md
# Verify related skills still exist
grep -oP '`[\w-]+`' skills/<skill-name>/SKILL.md | sort -u
Erwartet: Eine Liste spezifischer Luecken, Schwachstellen oder Verbesserungsmoeglichkeiten.
Bei Fehler: Falls die SKILL.md nicht existiert oder kein Frontmatter hat, ist dieser Skill nicht anwendbar — stattdessen create-skill verwenden, um sie von Grund auf neu zu erstellen.
Identifizieren und kategorisieren, was die Weiterentwicklung ausgeloest hat:
| Ausloser | Beispiel | Typischer Umfang |
|---|---|---|
| Nutzer-Feedback | "Schritt 3 ist unklar" | Verfeinerung |
| Werkzeugaenderung | Neue API-Version, veralteter Befehl | Verfeinerung |
| Entdeckter Fallstrick | Haeufiger Fehler nicht dokumentiert | Verfeinerung |
| Komplexitaets-Upgrade | Skill zu oberflaechlich fuer echte Nutzung | Verfeinerung oder Variante |
| Neue verwandte Skills | Angrenzender Skill wurde hinzugefuegt | Verfeinerung (Querverweise) |
| Fortgeschrittener Anwendungsfall | Erfahrene Nutzer brauchen tiefere Abdeckung | Variante |
Die spezifischen Aenderungen vor der Bearbeitung dokumentieren. Jede Aenderung mit ihrem Zielabschnitt auflisten.
Erwartet: Eine konkrete Liste von Aenderungen (z.B. "On failure zu Schritt 4 hinzufuegen", "Neuen Schritt 6 fuer Randfaell X hinzufuegen", "Related Skills um new-skill erweitern").
Bei Fehler: Falls die Aenderungen unklar sind, den Benutzer um Klaerung bitten, bevor fortgefahren wird. Vage Weiterentwicklungsziele erzeugen vage Verbesserungen.
Diese Entscheidungsmatrix verwenden, um zu bestimmen, ob direkt verfeinert oder eine Variante erstellt werden soll:
| Kriterium | Verfeinerung (direkt) | Fortgeschrittene Variante (neuer Skill) |
|---|---|---|
| Skill-ID | Unveraendert | Neue ID: <skill>-advanced |
| Dateipfad | Dieselbe SKILL.md | Neues Verzeichnis |
| Versions-Bump | Minor (Major nur bei Breaking Change) | Beginnt bei 1.0 |
| Komplexitaet | Kann steigen | Hoeher als das Original |
| Registry | Kein neuer Eintrag | Neuer Eintrag hinzugefuegt |
| Symlinks | Keine Aenderung | Neue Symlinks benoetigt |
| Urspruenglicher Skill | Direkt modifiziert | Unveraendert, erhaelt Querverweis |
Verfeinerung: Waehlen wenn Qualitaet verbessert, Luecken behoben oder bescheidene neue Inhalte hinzugefuegt werden. Der Skill behaelt seine Identitaet.
Variante: Waehlen wenn die weiterentwickelte Version doppelt so lang waere, die Zielgruppe aendern oder wesentlich andere Eingaben erfordern wuerde. Das Original bleibt fuer einfachere Anwendungsfaelle unveraendert.
Erwartet: Eine klare Entscheidung — Verfeinerung oder Variante — mit Begruendung.
Bei Fehler: Falls unsicher, Standard-Verfeinerung verwenden. Eine Variante kann spaeter immer extrahiert werden; es ist schwieriger, eine wieder zusammenzufuehren.
Die bestehende SKILL.md direkt bearbeiten:
Diese Bearbeitungsregeln befolgen:
# Create the variant directory
mkdir -p skills/<skill-name>-advanced/
# Copy the original as a starting point
cp skills/<skill-name>/SKILL.md skills/<skill-name>-advanced/SKILL.md
# Edit the variant:
# - Change `name` to `<skill-name>-advanced`
# - Update `description` to reflect the advanced scope
# - Raise `complexity` (e.g., intermediate → advanced)
# - Reset `version` to "1.0"
# - Add/expand procedure steps for the advanced use case
# - Reference the original in Related Skills as a prerequisite
Erwartet: Die SKILL.md (verfeinert oder neue Variante) besteht die Bewertungscheckliste aus Schritt 1.
Bei Fehler: Falls eine Schrittbearbeitung die Dokumentstruktur beschaedigt, git diff verwenden, um Aenderungen zu ueberpruefen und partielle Bearbeitungen mit git checkout -- <file> rueckgaengig zu machen.
Erforderlich, wenn Uebersetzungen existieren. Dieser Schritt gilt sowohl fuer menschliche Autoren als auch fuer KI-Agenten, die dieser Vorgehensweise folgen. Nicht ueberspringen — veraltete
source_commit-Werte fuehren dazu, dassnpm run validate:translationsfalsche Stale-Warnungen ueber alle Locales hinweg meldet.
Pruefen, ob Uebersetzungen fuer den weiterentwickelten Skill existieren, und sie auf den neuen Stand der Quelle aktualisieren:
# Check for existing translations
ls i18n/*/skills/<skill-name>/SKILL.md 2>/dev/null
npm run validate:translations
source_commit im Frontmatter jeder uebersetzten Datei aktualisieren:npm run check:fence-propagation -- --id <skill-name>
node tools/provenance-field.mjs --field fence_basis_commit --set $(git rev-parse --short HEAD) <mirror paths>
evolve(<skill-name>): <Beschreibung der Aenderungen>
Translations flagged for re-sync: de, zh-CN, ja, es
Changed sections: <Liste der geaenderten Abschnitte>
npm run translation:status
Keine Aktion noetig. Mit Schritt 5 fortfahren.
Die Uebersetzung neuer Varianten aufschieben, bis sich die Variante stabilisiert hat (1-2 Versionen). Eine v1.0-Variante zu uebersetzen, die sich bis v1.2 erheblich aendern kann, verschwendet Aufwand. Uebersetzungen hinzufuegen, nachdem die Variante mindestens einmal verfeinert wurde.
Erwartet: Alle uebersetzten Dateien haben source_commit auf den aktuellen Commit aktualisiert. Die Commit-Nachricht vermerkt, welche Locales neu uebersetzt werden muessen und welche Abschnitte sich geaendert haben. npm run translation:status beendet mit 0.
Bei Fehler: Falls sed das Frontmatter-Feld nicht matcht, hat die uebersetzte Datei moeglicherweise eine nicht standardisierte Formatierung. Manuell oeffnen und pruefen, ob source_commit in ihrem YAML-Frontmatter vorhanden ist. Falls das Feld fehlt, wurde die Datei nicht korrekt angelegt — mit npm run translate:scaffold neu anlegen.
Das Feld version im Frontmatter erhoehen:
| Aenderungstyp | Versions-Bump | Beispiel |
|---|---|---|
| Tippfehler, Formulierungspraezisierung | Minor: 1.0 -> 1.1 | Unklaren Satz in Schritt 3 korrigiert |
| Neuer Schritt, neuer Fallstrick, neue Tabelle | Minor: 1.0 -> 1.1 | Schritt 7 fuer Randfaelle hinzugefuegt |
| Verfahren umstrukturiert, Eingaben geaendert | Major: 1.0 -> 2.0 | Von 5 auf 8 Schritte umorganisiert |
Auch aktualisieren:
complexity falls der Umfang erweitert wurde (z.B. basic -> intermediate)tags falls sich der Abdeckungsbereich geaendert hatdescription falls sich der Skill-Umfang wesentlich geaendert hatErwartet: Frontmatter-version spiegelt die Groesse der Aenderungen wider. Neue Varianten beginnen bei "1.0".
Bei Fehler: Falls die Version vergessen wird zu erhoehen, gibt es keine Moeglichkeit, den aktuellen Stand vom vorherigen zu unterscheiden. Immer vor dem Committen erhoehen.
Keine Registry-Aenderungen erforderlich (Pfad unveraendert). Querverweise nur aktualisieren, wenn sich Related Skills in anderen Skills geaendert haben:
# Check if any skill references the evolved skill
grep -r "<skill-name>" skills/*/SKILL.md
Den neuen Skill zu skills/_registry.yml hinzufuegen:
- id: <skill-name>-advanced
path: <skill-name>-advanced/SKILL.md
complexity: advanced
language: multi
description: One-line description of the advanced variant
Dann:
total_skills am Anfang der Registry hochzaehlen# Project-level
ln -s ../../skills/<skill-name>-advanced .claude/skills/<skill-name>-advanced
# Global
ln -s /mnt/d/dev/p/agent-almanac/skills/<skill-name>-advanced ~/.claude/skills/<skill-name>-advanced
Erwartet: Registry-total_skills stimmt mit find skills -name SKILL.md | wc -l ueberein. Querverweise sind bidirektional.
Bei Fehler: Falls die Registry-Zaehlung falsch ist, find skills -name SKILL.md | wc -l ausfuehren, um die wahre Zaehlung zu ermitteln und die Registry zu korrigieren.
Die vollstaendige Validierungscheckliste durchfuehren:
version wurde erhoehen (Verfeinerung) oder auf "1.0" gesetzt (Variante)total_skills-Zaehlung stimmt mit tatsaechlicher Skill-Anzahl auf der Festplatte uebereingit diff zeigt keine versehentlichen Loeschungen aus dem urspruenglichen Inhalt# Verify frontmatter
head -20 skills/<skill-name>/SKILL.md
# Count skills on disk vs registry
find skills -name SKILL.md | wc -l
grep total_skills skills/_registry.yml
# Check symlinks (for variants)
ls -la .claude/skills/<skill-name>-advanced
readlink -f .claude/skills/<skill-name>-advanced/SKILL.md
# Review all changes
git diff
Erwartet: Alle Checklistenelemente bestanden. Der weiterentwickelte Skill ist bereit zum Committen.
Bei Fehler: Jeden fehlschlagenden Punkt einzeln adressieren. Das haeufigste Post-Weiterentwicklungs-Problem ist ein veralteter total_skills-Zaehler — immer zuletzt pruefen.
version-Feld spiegelt die vorgenommenen Aenderungen widertotal_skills stimmt mit tatsaechlicher Zaehlung auf der Festplatte ueberein_registry.yml mit korrektem Pfad.claude/skills/ und ~/.claude/skills/git diff bestaetigt keine versehentliche Inhaltsentfernungversion immer im Frontmatter vor dem Committen aktualisieren.git diff vor dem Committen ueberpruefen.total_skills-Zaehler hochgezaehlt werden. Dieses Vergessen verursacht Validierungsfehler in anderen Skills.git mv auf NTFS-gemounteten Pfaden vermeiden (WSL): Auf /mnt/-Pfaden kann git mv fuer Verzeichnisse fehlerhafte Berechtigungen erstellen. Stattdessen mkdir -p + Dateien kopieren + git rm des alten Pfades verwenden.create-skill — Grundlage fuer das Verfassen neuer Skills; evolve-skill setzt voraus, dass dies urspruenglich befolgt wurdecommit-changes — den weiterentwickelten Skill mit einer beschreibenden Nachricht committenconfigure-git-repository — versionskontrollierte Skill-Aenderungensecurity-audit-codebase — weiterentwickelte Skills auf versehentlich enthaltene Geheimnisse pruefen