Synthèse automatique
Fait tourner une boucle d'itération (Load → Run → Grade → Ask → Fold → Report) sur un fichier de skill ou de prompt cible afin de l'améliorer à partir d'un cas de test réel.
Points forts
- Séquence d'étapes imposée et non contournable, avec interdiction d'éditer le skill cible avant l'étape Fold
- Les questions posées à l'utilisateur sont contraintes en A/B/C ou oui/non, avec le compromis et ses conséquences explicités
- Exige un diff ou un avant/après cité lors de la modification du skill, et interdit de déclarer le skill « terminé »
- Refuse de démarrer sans une entrée de test réelle, ce qui ancre l'itération dans un cas concret
Limites
- L'auto-évaluation est faite par le même modèle qui a produit la sortie, donc la notation reste subjective
- Le fichier fourni est tronqué : les étapes Ask, Fold et Report ne sont pas entièrement spécifiées
- Aucune validation automatisée du skill obtenu n'est prévue ; le gain de qualité repose sur le jugement du modèle
À utiliser lorsqu'un skill ou un prompt existe déjà et que l'on veut l'affiner de façon cumulative à partir d'un exemple réel plutôt que de re-prompter à la volée.
À éviter pour créer un skill de zéro sans cas de test disponible, ou lorsqu'on attend une correction rapide en une passe sans échange de questions-réponses.
Analyse de sécurité
PrudenceThis is a meta-prompting / prompt-refinement workflow. It never invokes the network, never touches secrets, and contains no obfuscated or destructive commands (no curl|sh, no rm -rf, no safety-disabling text). Its power comes from Write/Edit/Bash over the user's own skill files, and it edits those files before showing the diff, so it warrants 'caution' rather than 'safe' — but the intent is clearly legitimate authoring tooling.
- •Declares Bash alongside Write/Edit; although no explicit commands are given, the skill operates on live files on the user's disk
- •Fold step edits the target skill file and only shows the diff *after* the edit, with no pre-edit confirmation or backup
- •Load step will distill conversation and save a new skill.md without an explicit confirmation gate
- •No network, credential, or destructive-path instructions present — the risk is confined to local file mutation
Exemples
Run the whetstone loop on ./skills/ticket-triage/skill.md using this support ticket as the test input: "Customer says the export button returns a 500 after the last deploy."Turn the crank on prompts/code-review.md — use this diff as the test input and give me two grade cycles before asking me anything.We've been tweaking this review prompt for the last 20 messages. Distill it into a skill.md, then run the whetstone loop on it with this sample PR as input.name: whetstone version: 0.3.0 description: | Run one "turn of the crank" on a target skill, prompt, or piece of guidance. Apply the skill to a real test input, self-grade against its own rules, improve the output, then surface ambiguities to the user as A/B questions and fold the answers back into the skill file. The skill is the durable artifact; the chat is exhaust. Use when the user says "run the whetstone loop", "sharpen this skill", "improve this prompt", "turn the crank on X", or wants to compound learnings into a versioned skill instead of re-prompting one-off. argument-hint: "[path/to/target/skill.md] [path/to/test-input]" allowed-tools:
- Read
- Edit
- Write
- Bash
- Glob
- Grep
Whetstone
You are running the Whetstone Loop: building a skill that sharpens itself. The skill file is the asset. The conversation is throwaway. Your job is to drive one turn of the crank — Load → Run → Grade → Ask → Fold → Report — without skipping steps.
Goal
Drive a single iteration on a target skill so that running it again on the same input would produce a better result with fewer questions. Leave the skill in a strictly-better state, with at least one open question seeded for the next turn.
Inputs you must identify before running
- Target skill file. A
skill.md(or equivalent guidance file) the user is iterating on. If none exists, your first job is to distill the prior conversation into one before continuing. - Test input. A real task the skill should handle. Refuse to start the loop without one — ask the user to paste a real example.
- Turn budget. How many self-grade/improve cycles before stopping. Default: 2. Hard cap: 3.
Hard rules
- Never edit the target skill file before Fold. Self-improvement during Grade happens in output drafts only; the skill file changes only after the user answers the Ask questions.
- Never ask the user open-ended questions like "what should I change?" Constrain to A/B/C or yes/no. Each question must name the trade-off explicitly, including the consequence of each option.
- Never mark the skill "done." Always leave at least one entry under
Open questionsso the next turn has somewhere to push. - Always announce each step in one sentence when running interactively so the user can interrupt before you commit to a path. When the run is captured as a written artifact (a turn doc), step headers replace the inline announcement — do not duplicate.
- Always show a diff (or quoted before/after) when editing the skill in Fold.
- Ask questions target the target skill only. Surface ambiguities the target skill did not specify. If you notice gaps in Whetstone itself while running, hold them — they only get raised when Whetstone is explicitly the target of a meta-run.
Soft rules
- Prefer 3 sharp questions over 8 vague ones in Ask.
- Prefer rewriting an existing rule with reasoning attached over adding a new rule with no
why. - Default to keeping the skill under 200 lines. If it grows past that, surface a split-vs-refactor question.
- Default test input picks: something small enough to fully grade in under a minute.
The loop
Execute these steps in order. Do not skip.
1. Load — locate or distill the skill
If a target skill.md exists, read it. If not, read the recent conversation and distill it into a draft skill.md using the structure: Goal / Hard rules / Soft rules / The loop (or process) / Examples / Edge cases / Open questions. Save it before continuing.
2. Run — apply the skill cold
Apply the skill to the test input exactly as written. Produce output. Show it to the user verbatim. Do not silently improve it here — Run is the cold-start baseline.
3. Grade — self-grade and improve
List every rule from Hard rules and Soft rules. For each, mark the Run output pass or fail and quote the offending span. Rewrite the output to address every fail. Re-grade. Stop the moment every rule passes — do not keep polishing for vague "quality." If the rule-passing output still feels weak, that is signal the rules are too loose; capture the felt-weakness as an Ask question instead. Halt also when the turn budget is exhausted. Show the final output and the final grade.
4. Ask — surface ambiguities as A/B questions
Identify 2–4 decisions you made during Grade that the skill did not fully specify. For each, write a question with named options and consequences:
Q1: <what was ambiguous>
A) <option A> — <consequence>
B) <option B> — <consequence>
Stop and wait for the user to answer. Do not proceed to Fold without answers.
5. Fold — bake answers into the skill
Edit the target skill.md so that re-running it on the same input would produce the user-preferred output without further questions. Update Hard rules, Soft rules, Examples, and Open questions as appropriate. Show the diff. Do not edit anything outside the skill file.
6. Report — summarize and stop
Do not start another turn unless the user asks. Print a short report: turns taken, rules added, rules changed, open questions remaining, suggested next test input.
Examples
Example: improving a pr-title skill
User has pr-title.md. They give you a diff as the test input.
- Run output:
Updated the auth middleware to handle expired tokens - Grade:
- Rule "imperative mood" —
Updatedfail (past tense). Rewrite:Update. - Rule "≤50 chars" — line is 52 chars fail. Rewrite tightens to 43.
- Final:
Update auth middleware for expired tokens— all rules pass.
- Rule "imperative mood" —
- Ask questions:
Q1: Refactors with no behavior change — prefix with "refactor:" or use a plain verb? A) refactor: prefix — clearer signal in changelogs. B) plain verb — shorter, matches existing repo style.Q2: PRs touching two unrelated areas — name both or pick the dominant? A) name both — accurate but long. B) dominant area only — punchy but loses information.
- Fold: user picks A, B. Add
Hard rule: Refactors use refactor: prefix.AddHard rule: For mixed-concern PRs, use the dominant area only; mention the secondary in the body.Remove these fromOpen questions. Add a newOpen question: How to title revert PRs.
Edge cases
- Skill conflicts with itself. Two rules disagree on the same input. Surface the conflict as an Ask question; do not silently pick one.
- User gives no test input. Refuse to start. Suggest the user paste a real example. Do not invent test inputs.
- Grade plateau on turn 1. If the first output passes every rule cold, the skill is too loose. Force an Ask question targeting whatever felt arbitrary while you were producing the output. During Fold, the answer parks under
Open questions; do not promote it directly to a Hard/Soft rule. Promote to a rule only after the same ambiguity surfaces on a second or third test input — one sighting is anecdote, two is pattern, three is rule. - Skill grows unwieldy. If the skill exceeds ~200 lines or has overlapping rule clusters, ask the user: split into multiple skills (A) or refactor in place (B)?
- User pushes back on a Fold edit. Treat their pushback as a fresh Ask answer; revise the diff before applying it.
Open questions
- How to handle conflicting reasoning when the user wants both options preserved — branching rules inside one skill, or fork into two skills?
- How to make a skill discoverable and usable across a team without becoming bureaucratic.
- When to retire a skill versus keep iterating on it.
- How to detect "skill rot" — when accumulated rules contradict each other and the skill needs a rewrite, not a tweak.
- Promotion threshold. Q3 (v0.2.0) set the policy "park first, promote after 2–3 sightings." Threshold is fuzzy — exactly how many sightings, and does the model track them automatically across turns, or does the human decide?
- Boundary between target-skill gaps and Whetstone-skill gaps. Q2 (v0.2.0) ruled "target only" during normal runs, but the model still has to classify ambiguities at the moment they arise. Heuristic for that classification not yet specified.
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/whetstone-loop-mrwakaai/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/whetstone-loop-mrwakaai' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/whetstone-loop-mrwakaai/download' --output '.skill-downloads/whetstone-loop-mrwakaai/SKILL.md.part' && mv '.skill-downloads/whetstone-loop-mrwakaai/SKILL.md.part' '.skill-downloads/whetstone-loop-mrwakaai/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/whetstone-loop-mrwakaai/SKILL.md' && test -s '.skill-downloads/whetstone-loop-mrwakaai/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/whetstone' && cp -R '.skill-downloads/whetstone-loop-mrwakaai' '.claude/skills/whetstone'Codex
test -f '.skill-downloads/whetstone-loop-mrwakaai/SKILL.md' && test -s '.skill-downloads/whetstone-loop-mrwakaai/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/whetstone' && cp -R '.skill-downloads/whetstone-loop-mrwakaai' '.agents/skills/whetstone'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/whetstone-loop-mrwakaai'openskills read 'whetstone-loop-mrwakaai'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/whetstone-loop-mrwakaai/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.