Abstraction Power

Transforme le code répété en une abstraction : pipeline fixe, variantes enfichables, organigramme Mermaid

par syahiidkamil · syahiidkamil/Software-Engineer-AI-Agent-Atlas

Testé · Fonctionne ★ 8.0/10

Abstraction Power — Transforme le code répété en une abstraction : pipeline fixe, variantes enfichables, organigramme Mermaid

Ce que fait

Une compétence d'invite à fichier unique qui fait analyser plusieurs exemples concrets par Claude, séparer l'invariant des parties variables, et émettre un modèle généralisé dans un format fixe Input / Abstraction Process / Abstract Model avec un organigramme Mermaid. Se déclenche lorsque vous lui demandez de trouver le modèle commun à travers des fonctions répétées, d'extraire une interface réutilisable, ou d'expliquer pourquoi chaque nouvelle variante vous oblige à modifier le même fichier. Non utile pour les refactorisations ou renommages d'instances uniques, où cela ajoute de la cérémonie sans perspicacité.

Rapport de test

Cloné dans un HOME temporaire (export HOME=$(mktemp -d)) et confirmé que SKILL.md atterrit dans ~/.claude/skills/abstraction-power/SKILL.md ; le frontmatter contient name+description, le corps ne référence aucun fichier ou script externe, et une recherche grep pour curl|sh, base64, exfiltration de clé/jeton et expressions d'injection n'a donné aucun résultat. Phrases de déclenchement que j'ai jugées — DEVRAIT se déclencher : "These four API clients all do the same connect/format/send dance, pull out the common abstraction", "I keep editing the same switch every time we add a payment provider — what's the general pattern ?", "Extract what's essential vs incidental across these three React hooks so I can write one generic hook" ; NE DEVRAIT PAS se déclencher : "Rename the variable usr to user across this file", "This one 300-line function is too long, split it into helpers" (instance unique, pas d'exemples répétés) — 5/5 correct. Test de sortie : trois fonctions d'exportation S3 presque identiques (CSV/XLSX/JSON) dans un input.js ; baseline.md (49 lignes) a produit une fonction d'aide paramétrée dont le SQL interpole `FROM ${table}`, avec une mise en garde pour la mettre sur liste blanche, et a conservé trois wrappers écrits à la main, tandis que skill.md (112 lignes, suivant les sections Input/Abstraction Process/Output obligatoires) a divisé les "caractéristiques essentielles" en un pipeline fixe plus une variante auto-descriptive `{kind, source, ext, mime, serialize}` — chaque format possède sa propre requête paramétrée, de sorte que le nom de table interpolé disparaît entièrement — a ajouté un registre pour qu'un quatrième format soit une inscription plutôt qu'une modification de code, et a inclus l'organigramme Mermaid `graph TD` requis par le corps (la base de référence n'en avait pas). Coût : 2,3 fois plus long, la section "Key Benefits" est un texte passe-partout, et sur des tâches de déduplication réellement petites, le cadrage du registre pousse à la sur-abstraction, donc 7 et non 9.

Testé le: 2026-07-31 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/syahiidkamil/Software-Engineer-AI-Agent-Atlas.git /tmp/abstraction-power-src
mkdir -p ~/.claude/skills
cp -R /tmp/abstraction-power-src/.claude/skills/abstraction-power ~/.claude/skills/abstraction-power
# Single SKILL.md, 87 lines, no scripts, no assets, no dependencies, no API keys.
# The parent repo (ATLAS) ships ~20 other skills under .claude/skills/ — this copies only this one.
# "ATLAS" in the description is repo jargon; the skill is fully standalone and needs none of the ATLAS scaffolding.
# Usage: ask for the common pattern across several similar functions, or invoke /abstraction-power.

Commandes et exemples de prompts

  • /abstraction-powerTransforme le code répété en une abstraction : pipeline fixe, variantes enfichables, organigramme Mermaid

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • Find repeated patterns in this codebase
  • Extract a reusable abstraction from these examples
  • Simplify this duplicated logic into one function