Synthèse automatique
Fait évoluer un skill en exploitant les traces de sessions, en proposant un candidat optimisé, puis en comparant les exécutions fraîches du baseline et du candidat selon une grille d'évaluation figée.
Points forts
- Impose une grille figée et des exécutions isolées pour éviter les comparaisons avant/après faussées.
- Met explicitement en garde contre les raccourcis d'évaluation invalides (fitness lexicale, juge LLM en un seul tour, scores dspy-eval rétrospectifs).
- Prévoit la curation d'un jeu de référence (harvest-sessions, build-golden, approve-golden) en amont de l'optimisation.
- Produit des manifestes auditables contenant hachages, run_id, exécuteur, modèle et sorties verbatim.
Limites
- Repose sur la chaîne d'outils distillery externe et sur des appels de modèles payants pour l'étape d'évolution.
- L'orchestration reste largement manuelle : répartir les exécutions et les jugements entre sous-agents frais.
- Une exécution bloquée laisse la comparaison incomplète, sans conclusion sur la significativité.
Utilisez-le lorsqu'il faut réviser un skill existant de façon rigoureuse et étayée, avec preuves à l'appui, plutôt que par retouches improvisées.
Évitez-le si vous ne disposez ni de traces de sessions ni de cas de comparaison exécutables, ou s'il s'agit seulement d'une correction de formulation rapide.
Analyse de sécurité
PrudenceThe skill uses bash, Python scripts, and subagent dispatch for legitimate skill-evolution workflows. No destructive, obfuscated, or exfiltration actions are present. Caution is appropriate because it relies on executing code and agents in a repository-specific environment.
- •The skill instructs execution of local Python scripts, bash commands, and native subagents, including paid model calls, without declaring allowed tools. Commands are not destructive or exfiltrating, but the environment assumes specific internal tooling.
Exemples
Evolve the `pdf-report` skill with the gepa optimizer for 5 iterations, save the candidate, and show me the diff plus any size-constraint issues before I run a comparison.Run harvest-sessions and build-golden for the `sql-review` skill with --top 20, then help me label successes as positive, failures as negative, and ungraded examples as skip.Emit the comparison tasks for `code-reviewer` against my evolved candidate using /tmp/skill-cases.jsonl and /tmp/skill-rubric.md, then score the returned outputs against the frozen verdict criteria.name: evolve-skill description: Propose a skill revision and compare fresh executions under a frozen rubric argument-hint: "<skill-name> [--optimizer gepa|mipro|bootstrap]"
Evolve a skill
Use historical traces to diagnose weaknesses and propose a candidate. Evaluate the candidate by executing the same tasks with both full skill versions and judging the resulting outputs against one unchanged rubric.
1. Diagnose and prepare
Run harvest-sessions, then build-golden <skill> --top 20. Review candidates and label explicit successes positive, failures negative, and ungraded examples skip; run approve-golden <skill>.
Optional dspy-eval <skill> --dataset golden --emit-tasks assesses recorded outputs retrospectively. Its --skill-file changes only the judge rubric. Neither score nor score difference measures how a candidate behaves. Older before/after comparisons using this method are invalid, including those that supplied --skill-file.
Before optimization, reserve self-contained comparison cases outside the training and selection data. Each JSONL row requires:
{"case_id":"decimal-sum","task_input":"Return the sum of 17 and 25 as a JSON object with key total. No tools are needed.","acceptance_criteria":"Return exactly {\"total\":42}, with no other text."}
Replace this illustrative case with tasks relevant to the skill. Include all necessary source/context in the task or use separately reset, isolated fixtures. Historical prompts lacking their repository state are not executable fixtures. Freeze an independent rubric in a text file before seeing either output. Define correctness, applicable procedure, and conciseness on a 0–10 scale.
2. Propose a candidate
python3 distillery/scripts/distiller.py evolve <skill> --optimizer gepa --iterations 5 --save
This step uses paid model calls; follow the user's spending authorization. Keyword fitness is a lexical proxy restricted to positive references or curated expected_output, never failed traces. LLM-judge fitness generates single-turn responses, not tool-using execution. Neither proves agentic improvement. Inspect the diff and size constraints; unchanged output is a null result, not proof of Pareto optimality.
3. Emit and execute the comparison
python3 distillery/scripts/distiller.py compare-skill <skill> --emit-tasks \
--candidate distillery/.eval-data/<skill>/evolved-SKILL.md \
--dataset /tmp/skill-cases.jsonl --rubric /tmp/skill-rubric.md \
> /tmp/skill-executions.json
The manifest freezes the live baseline, complete candidate, inputs, and rubric. Use --baseline <file> if the intended baseline is stored elsewhere.
Dispatch each tasks[].prompt to a separate fresh native subagent using the same model and settings. Do not show one execution the other's result. Reset mutable fixtures between executions; do not let concurrent agents edit the same checkout. No CLI model calls are needed for this path.
Collect a JSON array following execution_contract: copy task_id, input_sha256, and skill_sha256; add the manifest's run_id, actual executor_id and model, status (completed or blocked), and verbatim output. Never substitute historical responses or invent tool evidence. A blocked run leaves the comparison incomplete.
4. Judge against the frozen criteria
python3 distillery/scripts/distiller.py compare-skill <skill> \
--manifest /tmp/skill-executions.json --outputs /tmp/skill-outputs.json \
> /tmp/skill-judges.json
Dispatch only each judge prompt to a fresh judging subagent. These prompts contain the same rubric and case criteria, plus the corresponding fresh output; candidate instructions cannot redefine success. Collect the verdict_contract fields and each judge's JSON as response.
python3 distillery/scripts/distiller.py compare-skill <skill> \
--manifest /tmp/skill-judges.json --score-from-verdicts /tmp/skill-verdicts.json
Execution manifests freeze local skill resources in temporary snapshots: references/, scripts/, assets/, and local Markdown dependencies. Dependencies must remain within the candidate or baseline skill directories; directory links must stay within standard resource directories. Absolute links and escaping symlinks are rejected. Snapshots retain executable permissions and materialize valid local symlinks at their referenced paths. Candidate files outside the installed skill directory inherit missing resource directories from the baseline. Verify this is the intended candidate bundle. Executor prompts name the frozen skill path so relative links resolve; keep these snapshots until collection finishes. Required external resources must be supplied as controlled fixtures or reported blocked. Outputs must copy bundle_sha256 as well as the other contract fields. The collector rejects modified snapshots, missing/duplicate/mismatched records, blocked executions, mixed execution models, and malformed scores. Report the per-case results and mean paired delta, the number of cases, execution settings, and whether cases were withheld from optimization. Hashes detect accidental record mixing; they do not attest that a caller actually executed an agent. A small paired sample is not a calibrated effect estimate.
5. Review and apply
Show the candidate diff, paired results, failures, coverage limits, and size constraints. Do not apply based on a retrospective score delta or a universal numerical threshold. Ask whether to apply the candidate to plugins/whetstone/skills/<skill>/SKILL.md; after approval, run the applicable skill and trigger checks. Leave release versions and counts to release time.
For process skills requiring tool use, prefer SkillOpt's existing isolated fixture execution or the native execution path above. Retrospective trace scoring remains useful for diagnosis only.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/download' --output '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md.part' && mv '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md.part' '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md' && test -s '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/evolve-skill' && cp -R '.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd' '.claude/skills/evolve-skill'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd'openskills read 'evolve-a-skill-with-frozen-rubric-comparison-muar2zvd'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/evolve-a-skill-with-frozen-rubric-comparison-muar2zvd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Créer des cartes interactives avec kepler.gl
Data & IA
Création de cartes interactives et export HTML autonome avec le package Python keplergl, à partir de données géospatiales (DataFrame, GeoJSON, CSV).
Optimisation de paramètres par agent
Data & IA
Guide d'optimisation de systèmes configurables avec objectif mesurable, via des essais bornés et une recommandation fondée sur des preuves.
Relance des visiteurs ICP
Data & IA
Identifiez les utilisateurs inscrits correspondant au profil client idéal mais qui n'ont pas activé, et rédigez des messages de relance personnalisés pour les réengager.