Avishai-Tsabari/mercury-skills

Compétences réutilisables pour les assistants Mercury/pi — registres pilotés par schéma (ce qui existe) et trackers (travail en mouvement), moteurs Python sans dépendances

Qu'est-ce que mercury-skills ?

Cette compétence fournit un système de registres et de trackers pilotés par schéma pour les assistants Mercury/pi (comme Claude Code, Cursor ou Codex). Un tracker suit les éléments qui évoluent entre des états avec un responsable, une échéance et un historique préservé, tandis qu'un registre gère des listes statiques. La compétence aide l'agent à choisir le bon outil grâce à un test de routage : s'il y a moins de deux caractéristiques (statut changeant, responsable, date, hiérarchie), la compétence par défaut est le registre. Chaque tracker est stocké comme un répertoire avec un fichier `schema.json` et une base `tracker.db` SQLite, avec un moteur Python sans dépendances. La compétence supporte des presets (tâches, bugs, factures, fonctionnalités), le suivi d'historique, les rapports de synthèse, et une interaction en langage naturel où l'agent traduit les demandes utilisateur en commandes.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add Avishai-Tsabari/mercury-skills

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Tracker — suivre le travail qui avance

Quand utiliser cette compétence

Question signature : « Quel est le statut de… ? » ou « Qui possède ceci ? »

Un tracker = des éléments qui passent d'un état à un autre, avec un responsable, un calendrier et un historique qui mérite d'être conservé.

Le test de routage

Vous avez besoin d'au moins deux de ces critères pour justifier un tracker :

  • Un statut qui change au fil du temps (pas un attribut — du mouvement)
  • Un responsable humain
  • Une date d'échéance
  • Une hiérarchie : groupe → sous-groupe → élément

Moins de deux ? → registry. ⚠️ Le défaut est toujours le registre.

Comment c'est construit

Un moteur, plusieurs schémas.

<tracker-dir>/
  schema.json    statuts, priorités, étiquettes de hiérarchie, champs supplémentaires
  tracker.db     SQLite : éléments + groupes + item_history

Moteur : engine/tracker.py (à côté de ce SKILL.md) · Python 3.9+ · zéro dépendance (sqlite3 intégré).

Hiérarchie : group → subgroup → item. Les étiquettes changent selon le domaine — pour les tâches ce sera projet → module → tâche, pour les bugs ce sera produit → composant → bug, pour les factures ce sera client → abonnement → facture.

Travailler avec l'utilisateur

  1. Exécutez le test de routage. Une liste plate → registry.
  2. Proposez un schéma : quels statuts, ce qui est considéré comme « fermé », quelles priorités, quelle est la hiérarchie, quels champs supplémentaires. Présentez-le et demandez approbation.
  3. Vérifiez s'il existe un préréglage dans presets/.
  4. Créez avec init, ajoutez des groupes, puis enregistrez le tracker dans l'index registries.json au niveau de l'espace de travail.
  5. Expliquez que les mises à jour peuvent être signalées en langage naturel — l'agent les traduit en commandes.

Commandes

Les chemins sont relatifs à la racine de l'espace de travail. Ajustez SKILL_DIR à l'emplacement d'installation de cette compétence (par ex. .pi/skills/tracker).

T=<SKILL_DIR>/engine/tracker.py
D=trackers/bugs

python3 $T --dir $D init --preset bugs
python3 $T --dir $D group add webapp --name "Web App"
python3 $T --dir $D group add checkout --name "Checkout" --parent webapp
python3 $T --dir $D add "Double réservation dans le calendrier" --group webapp --subgroup checkout \
        --assignee dana --priority sev2 --client acme --due 2026-08-05
python3 $T --dir $D update 3 --status in-progress --notes "reproduit"
python3 $T --dir $D list --assignee dana --group-by status
python3 $T --dir $D list --status blocked
python3 $T --dir $D show 3
python3 $T --dir $D history 3
python3 $T --dir $D report          # résumé : par statut, par responsable, en retard, bloqué
python3 $T --dir $D delete 3 --yes  # ⚠️ suppression définitive

list sans filtre masque automatiquement les éléments fermés. --all affiche tout.

Préréglages disponibles

tasks tâches · bugs bugs et problèmes clients · invoices factures et recouvrement · features pipeline de fonctionnalités

Ordre de résolution des préréglages

init --preset <nom> résout <nom>.json dans cet ordre — le premier trouvé l'emporte :

  1. <workspace>/trackers/presets/<nom>.json — préréglages locaux à l'espace, relatifs au répertoire de travail depuis lequel le moteur s'exécute
  2. <SKILL_DIR>/presets/<nom>.json — les préréglages intégrés listés ci-dessus

Un préréglage local à l'espace avec le même nom qu'un préréglage intégré le masque. Un préréglage manquant liste chaque nom disponible depuis les deux emplacements, étiqueté [espace] / [intégré].

Créer un préréglage local à l'espace : déposez un schéma JSON (même format que schema.json, voir les exemples intégrés) dans trackers/presets/. Ce répertoire n'est lu qu'avec un --preset <nom> explicite — les autres fichiers y sont ignorés.

Règles absolues

  • 📊 Le tracker est la source de vérité — ne conservez jamais les statuts dans la mémoire de l'agent. Interrogez toujours.
  • ⛔ Un statut blocked nécessite une raison dans les notes — sinon le blocage ne sert à rien.
  • 🗑️ La suppression nécessite --yes et une confirmation explicite de l'utilisateur. Il n'existe pas de statut « annulé » par défaut — si nécessaire, ajoutez-le au schéma au lieu de supprimer.
  • 📜 Chaque changement est enregistré dans item_history — ne modifiez jamais la base à la main.
  • 🔁 Trois statuts ou moins sans responsable ni date d'échéance = cela aurait dû être un registre.

Skills associés