Synthèse automatique
Cette skill lance une boucle d'optimisation qui réduit le nombre total de mots d'une skill (SKILL.md et references/*.md) en ne conservant que les coupes qui laissent passer l'intégralité des fixtures d'évaluation.
Points forts
- Boucle fermée et mesurable : chaque coupe est validée par le comptage de mots et par l'exécution complète de la suite d'évals.
- Filet de sécurité git explicite (commit si la coupe est sûre, git checkout sinon) avec contrôle de propreté de l'arbre avant démarrage.
- Interdit la fausse optimisation consistant à déplacer du texte vers references/, ce qui garantit une réduction réelle du volume.
- Arrêt automatique après max-stall échecs consécutifs, avec consigne de cibler une zone différente après chaque revert.
Limites
- Dépend entièrement de la qualité des fixtures : une règle non couverte peut être supprimée sans que la suite ne régresse.
- Nécessite un dépôt git propre et l'existence d'une suite d'évals fonctionnelle ; sans cela la boucle ne peut pas démarrer.
- Le prompt final du SKILL.md est tronqué, donc les détails du « deterministic gate » restent partiellement indéterminés.
À utiliser lorsqu'une skill est devenue verbeuse et que vous disposez déjà d'une suite de fixtures comportementales fiable pour vérifier qu'aucune règle essentielle ne disparaît.
À éviter sur une skill sans fixtures d'évaluation, dans un dépôt aux modifications non commitées, ou lorsque la formulation elle-même fait partie du livrable.
Analyse de sécurité
PrudenceThe skill drives autonomous file edits, git commits/checkouts, and subagent execution, which are powerful capabilities, but all operations are scoped to the target skill directory and guarded by a clean-tree precondition. There is no exfiltration, destructive recursion, remote fetch, or safety-disabling instruction, so it is a legitimate developer tool that warrants caution rather than being risky.
- •Automatically runs `git add -A {skill_dir}` and `git commit` for each kept cut without asking the user to confirm each commit.
- •Uses `git checkout -- {skill_dir}` to discard changes; scoped to the skill directory and gated by a dirty-tree precondition, but a misjudged precondition could still lose uncommitted work in that path.
- •Spawns many general-purpose subagents per round and runs eval fixtures via `python3 scripts/eval_skills.py`, incurring cost/time and depending on an external script and the `/draft-loop` rubric.
- •Uses Bash/Edit/Write for legitimate file and git operations; no network, credential, or obfuscated-payload behavior present.
Exemples
Compress writing-style/writing-style using the Ralph loop with 2 reps and a max stall of 3.Run the compression loop on my plugin's code-review skill: 3 reps, max-stall 4, and commit each cut that keeps all fixtures green.The last cut to the code-review skill was reverted because the tone fixture regressed — pick a different region and keep shrinking the total word count.description: Ralph loop that shrinks a skill's total word count without losing effectiveness. Greedily proposes cuts, keeps any that leave every eval fixture passing, and git-reverts the rest. Args: <plugin/skill> [reps] [max-stall]. Default writing-style/writing-style, reps 2, max-stall 3. allowed-tools: Bash, Agent, Read, Edit, Write
Compress Skill
Reduce a skill to its irreducible core. The fixtures are the fitness function; git is the safety net. Each round proposes one coherent cut, verifies the whole eval suite still passes, and keeps the cut only if it does. Stop when several cuts in a row all regress: what remains is load-bearing.
Argument: $ARGUMENTS = <plugin>/<skill> [reps] [max-stall]. Defaults: writing-style/writing-style, reps=2, max-stall=3.
Objective: minimize total words across SKILL.md AND references/*.md. No relocation credit — moving text from SKILL.md into a reference does not count as a cut. Words must be genuinely removed.
Constraint: every behavior fixture must still pass after the cut, every rep.
Preconditions
Run git status --porcelain for the skill directory. If it is dirty, stop and tell the user to commit or stash first — the loop relies on git checkout to revert, and that would clobber their uncommitted work. The loop commits each kept cut, so the working tree must start clean.
Steps
1. Baseline. Record starting total word count (wc -w SKILL.md references/*.md). Run the full behavior suite once (see "Run the suite") to confirm the skill currently passes everything. Any fixture that fails at baseline is excluded from the constraint (it was already failing; note it, don't let it block cuts). Set stall = 0.
2. Propose one cut. Dispatch a compressor subagent (subagent_type: general-purpose, description: Compress {skill} round {n}):
You are tightening a skill document to its irreducible core. Read every file under {skill_dir} (SKILL.md and references/). Propose THE single highest-value reduction that removes the most words while changing no rule's meaning.
Target, in priority order: (1) the same rule stated in more than one place — keep the strongest statement, cut the echoes; (2) verbose prose that a tighter sentence carries; (3) redundant or over-long examples — one crisp example beats three; (4) hedging and meta-commentary about the rules.
Do NOT delete a unique rule, a unique example, or a distinction that appears only once, even if you think it minor. Do NOT move text into another file to make one file shorter — the goal is fewer total words. Do NOT touch YAML frontmatter.
Apply the edit directly with your file tools. Then reply with ONLY: the files touched, the approx words removed, and one sentence on what redundancy you cut.
3. Verify. Re-run wc -w. If total did not drop, treat as a stall (revert is a no-op). Otherwise run the suite (reps per fixture). A cut is safe iff every behavior fixture passes every rep AND total words dropped.
4. Keep or revert.
- Safe:
git add -A {skill_dir} && git commit -m "compress {skill}: <one-line summary> (-NNN words)". Resetstall = 0. - Unsafe:
git checkout -- {skill_dir}to discard the cut. Incrementstall. Record which fixture(s) regressed and what was cut — that content is load-bearing for those fixtures.
5. Loop. If stall >= max-stall, stop: the remaining text resisted max-stall consecutive cut attempts. Otherwise go to step 2. (To keep proposals fresh after a revert, tell the next compressor which region was just tried and reverted so it picks a different target.)
Run the suite
For each behavior fixture (skip known_bad_output fixtures), reps times:
- Subject (
general-purpose): "Read {skill_dir}/SKILL.md and apply its rules. You may read references/ if it directs you to. Reply with the artifact ONLY." + the fixtureprompt. - Deterministic gate (Bash): write the output to a temp file;
grep -n $'—'for em dashes andgrep -niEfor any literal banned words named in that fixture's criteria. Any hit is a forced violation. - Judge (
general-purpose, skill-blind, MUST NOT see the skill body): the strict-JSON rubric from/draft-loopstep (c), using the fixture'scriteria.
A rep passes iff the gate is clean AND the judge returns pass: true. Load fixtures with python3 scripts/eval_skills.py <plugin> --emit-json.
Report
Compression: {start} -> {end} words ({pct}% smaller), {K} cuts kept, {S} reverted.
Kept cuts:
- <summary> (-NNN)
Load-bearing (reverted because a fixture regressed):
- <what was cut> -> regressed {fixture}
The "load-bearing" list is the valuable output: it maps which words are doing real work. Leave the skill on the last committed (passing) state.
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/compress-skill-mrwake2e/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/compress-skill-mrwake2e' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/compress-skill-mrwake2e/download' --output '.skill-downloads/compress-skill-mrwake2e/SKILL.md.part' && mv '.skill-downloads/compress-skill-mrwake2e/SKILL.md.part' '.skill-downloads/compress-skill-mrwake2e/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
Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.
Mode 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/compress-skill-mrwake2e/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.
Rédaction de docs Supabase
Documentation
Rédigez, éditez et révisez le contenu de la documentation Supabase : guides, tutoriels, références et partiels. Suivez les guides de style et les règles de validation MDX/TOML.
Créer un enregistrement de décision d'architecture
Documentation
Créer un nouveau ADR avec numérotation séquentielle, l'enregistrer dans le graphe AgentDB et le lier aux ADR associés.
Mise à jour de plan avec recherche approfondie
Documentation
Met à jour un document de plan en lançant des sous-agents en parallèle pour analyser un sujet sur tous les passes du compilateur, puis consolide les résultats.