gvkhloisa/compound-engineering-pi

Trier et catégoriser les résultats pour le système de tâches CLI

Qu'est-ce que compound-engineering-pi ?

Cette compétence d'agent IA permet de trier et catégoriser les résultats (revues de code, audits de sécurité, analyses de performance, etc.) pour les intégrer dans un système de tâches CLI. Elle guide l'utilisateur à travers un processus structuré où chaque constat est présenté, évalué et soit approuvé pour être ajouté (état 'ready') soit rejeté et supprimé. La compétence fonctionne sur des répertoires de fichiers markdown spécifiques (`.context/compound-engineering/todos/` et `todos/`). Elle impose une règle stricte de ne pas coder pendant le triage, se concentrant uniquement sur la prise de décision et la mise à jour des statuts des fichiers de tâches. Destinée aux développeurs et utilisateurs d'agents IA comme Claude Code ou Codex, elle permet une gestion rationalisée des constats issus de divers flux de travail, en assurant un suivi clair des approbations et des rejets.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gvkhosla/compound-engineering-pi/tree/HEAD/skills/triage

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · 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

  • Commencez par définir /model sur Haiku
  • Ensuite, lisez toutes les tâches en attente depuis les répertoires .context/compound-engineering/todos/ et todos/ (héritage)

Présentez tous les constats, décisions ou problèmes ici un par un pour le triage. L'objectif est de passer en revue chaque élément et de décider s'il faut l'ajouter au système de tâches CLI.

IMPORTANT : NE CODEZ RIEN PENDANT LE TRIAGE !

Cette commande est destinée à :

  • Trier les résultats de revue de code
  • Traiter les résultats d'audit de sécurité
  • Examiner l'analyse de performance
  • Gérer tout autre constat catégorisé nécessitant un suivi

Flux de travail

Étape 1 : Présenter chaque constat

Pour chaque constat, présentez-le dans ce format :

---
Problème #X : [Titre succinct]

Gravité : 🔴 P1 (CRITIQUE) / 🟡 P2 (IMPORTANT) / 🔵 P3 (BON-À-AVOIR)

Catégorie : [Sécurité/Performance/Architecture/Bogue/Fonctionnalité/etc.]

Description :
[Explication détaillée du problème ou de l'amélioration]

Emplacement : [chemin_du_fichier:numéro_de_ligne]

Scénario du problème :
[Étape par étape, ce qui ne va pas ou ce qui pourrait arriver]

Solution proposée :
[Comment le corriger]

Effort estimé : [Petit (< 2 heures) / Moyen (2-8 heures) / Grand (> 8 heures)]

---
Souhaitez-vous ajouter ceci à la liste de tâches ?
1. oui - créer le fichier de tâche
2. suivant - ignorer cet élément
3. personnalisé - modifier avant de créer

Étape 2 : Gérer la décision de l'utilisateur

Lorsque l'utilisateur dit "oui" :

  1. Mettre à jour le fichier de tâche existant (s'il existe) ou créer un nouveau nom de fichier :

    Si la tâche existe déjà (issue d'une revue de code) :

    • Renommer le fichier de {id}-en-attente-{priorité}-{description}.md → {id}-prêt-{priorité}-{description}.md
    • Mettre à jour le frontmatter YAML : statut : en_attente → statut : prêt
    • Conserver l'ID de problème, la priorité et la description inchangés

    Si création d'une nouvelle tâche :

    {prochain_id}-prêt-{priorité}-{description-concise}.md
    

    Correspondance des priorités :

    • 🔴 P1 (CRITIQUE) → p1
    • 🟡 P2 (IMPORTANT) → p2
    • 🔵 P3 (BON-À-AVOIR) → p3

    Exemple : 042-prêt-p1-limites-transaction.md

  2. Mettre à jour le frontmatter YAML :

    ---
    statut: prêt # IMPORTANT : Passer de "en_attente" à "prêt"
    priorité: p1 # ou p2, p3 selon la gravité
    id_problème: "042"
    tags: [catégorie, tags-pertinents]
    dépendances: []
    ---
    
  3. Remplir ou mettre à jour le fichier :

    # [Titre du problème]
    
    ## Énoncé du problème
    [Description du constat]
    
    ## Résultats
    - [Découvertes clés]
    - Emplacement : [chemin_du_fichier:numéro_de_ligne]
    - [Détails du scénario]
    
    ## Solutions proposées
    
    ### Option 1 : [Solution principale]
    - **Avantages** : [Bénéfices]
    - **Inconvénients** : [Inconvénients s'il y en a]
    - **Effort** : [Petit/Moyen/Grand]
    - **Risque** : [Faible/Moyen/Élevé]
    
    ## Action recommandée
    [Rempli pendant le triage – plan d'action spécifique]
    
    ## Détails techniques
    - **Fichiers affectés** : [Liste des fichiers]
    - **Composants liés** : [Composants affectés]
    - **Modifications de base de données** : [Oui/Non – décrire si oui]
    
    ## Ressources
    - Constat d'origine : [Source de ce problème]
    - Problèmes liés : [S'il y en a]
    
    ## Critères d'acceptation
    - [ ] [Critères de succès spécifiques]
    - [ ] Tests passent
    - [ ] Code revu
    
    ## Journal de travail
    
    ### {date} - Approuvé pour travail
    **Par :** Système de triage Claude
    **Actions :**
    - Problème approuvé lors de la session de triage
    - Statut passé de en_attente → prêt
    - Prêt à être pris en charge et travaillé
    
    **Apprentissages :**
    - [Contexte et informations]
    
    ## Notes
    Source : Session de triage du {date}
    
  4. Confirmer l'approbation : "✅ Approuvé : {nouveau_nom_fichier} (Problème #{id_problème}) - Statut : prêt → Prêt à être travaillé"

Lorsque l'utilisateur dit "suivant" :

  • Supprimer le fichier de tâche - Le retirer de son emplacement actuel car il n'est pas pertinent
  • Passer à l'élément suivant
  • Suivre les éléments ignorés pour le résumé

Lorsque l'utilisateur dit "personnalisé" :

  • Demander quoi modifier (priorité, description, détails)
  • Mettre à jour les informations
  • Présenter la version révisée
  • Redemander : oui/suivant/personnalisé

Étape 3 : Continuer jusqu'à ce que tout soit traité

  • Traiter tous les éléments un par un
  • Suivre à l'aide de tâches basées sur des fichiers (todos/ + /skill:file-todos) pour la visibilité
  • Ne pas attendre l'approbation entre les éléments – continuer

Étape 4 : Résumé final

Après que tous les éléments ont été traités :

## Triage terminé

**Total des éléments :** [X] **Tâches approuvées (prêt) :** [Y] **Ignorées :** [Z]

### Tâches approuvées (prêtes pour le travail) :

- `042-prêt-p1-limites-transaction.md` - Problème de limites de transaction
- `043-prêt-p2-optimisation-cache.md` - Amélioration des performances du cache ...

### Éléments ignorés (supprimés) :

- Élément #5 : [raison] - Supprimé
- Élément #12 : [raison] - Supprimé

### Résumé des modifications apportées :

Pendant le triage, les mises à jour de statut suivantes ont eu lieu :

- **En attente → Prêt :** Noms de fichiers et frontmatter mis à jour pour refléter le statut approuvé
- **Supprimés :** Fichiers de tâches pour les constats ignorés retirés
- Chaque fichier approuvé a maintenant `statut: prêt` dans le frontmatter YAML

### Prochaines étapes :

1. Voir les tâches approuvées prêtes pour le travail :
   ```bash
   ls .context/compound-engineering/todos/*-prêt-*.md todos/*-prêt-*.md 2>/dev/null
   ```
  1. Commencer le travail sur les éléments approuvés :

    /résoudre-tâches-parallèles  # Travailler sur plusieurs éléments approuvés efficacement
    
  2. Ou choisir des éléments individuels sur lesquels travailler

  3. Au fur et à mesure que vous travaillez, mettre à jour le statut de la tâche :

    • Prêt → En cours (dans votre contexte local pendant que vous travaillez)
    • En cours → Terminé (renommer le fichier : prêt → terminé, mettre à jour le frontmatter)

Exemple de format de réponse

---

Problème #5 : Absence de limites de transaction pour les opérations en plusieurs étapes

Gravité : 🔴 P1 (CRITIQUE)

Catégorie : Intégrité des données / Sécurité

Description : Le rappel google_oauth2_connected dans le concern GoogleOauthCallbacks effectue plusieurs opérations de base de données sans protection de transaction. Si une étape échoue en cours de route, la base de données est laissée dans un état incohérent.

Emplacement : app/controllers/concerns/google_oauth_callbacks.rb:13-50

Scénario du problème :

1. User.update réussit (email modifié)
2. Account.save! échoue (erreur de validation)
3. Résultat : L'utilisateur a changé d'email mais n'a pas de compte associé
4. La prochaine tentative de connexion échoue complètement

Opérations sans transaction :

- Confirmation de l'utilisateur (ligne 13)
- Retrait de la liste d'attente (ligne 14)
- Mise à jour du profil utilisateur (lignes 21-23)
- Création du compte (lignes 28-37)
- Attachement de l'avatar (lignes 39-45)
- Création du parcours (ligne 47)

Solution proposée : Envelopper toutes les opérations dans un bloc ApplicationRecord.transaction do ... end

Effort estimé : Petit (30 minutes)

---
Souhaitez-vous ajouter ceci à la liste de tâches ?

1. oui - créer le fichier de tâche
2. suivant - ignorer cet élément
3. personnalisé - modifier avant de créer

Détails d'implémentation importants

Transitions de statut pendant le triage

Lorsque "oui" est sélectionné :

  1. Renommer le fichier : {id}-en-attente-{priorité}-{description}.md → {id}-prêt-{priorité}-{description}.md
  2. Mettre à jour le frontmatter YAML : statut: en_attente → statut: prêt
  3. Mettre à jour le journal de travail avec l'entrée d'approbation du triage
  4. Confirmer : "✅ Approuvé : {nom_fichier} (Problème #{id_problème}) - Statut : prêt"

Lorsque "suivant" est sélectionné :

  1. Supprimer le fichier de tâche de son emplacement actuel
  2. Passer à l'élément suivant
  3. Aucun fichier ne reste dans le système

Suivi de la progression

Chaque fois que vous présentez une tâche en tant qu'en-tête, incluez :

  • Progression : X/Y terminé (par exemple, "3/10 terminé")
  • Temps estimé restant : Basé sur votre vitesse de progression
  • Rythme : Surveiller le temps par constat et ajuster l'estimation en conséquence

Exemple :

Progression : 3/10 terminé | Temps estimé : ~2 minutes restantes

Ne pas coder pendant le triage

  • ✅ Présenter les constats
  • ✅ Prendre des décisions oui/suivant/personnalisé
  • ✅ Mettre à jour les fichiers de tâches (renommer, frontmatter, journal de travail)
  • ❌ Ne PAS implémenter de correctifs ou écrire de code
  • ❌ Ne PAS ajouter de détails d'implémentation détaillés
  • ❌ Ceci est réservé à la phase /résoudre-tâches-parallèles

Une fois terminé, proposer ces options :

Que souhaitez-vous faire ensuite ?

1. exécuter /résoudre-tâches-parallèles pour résoudre les tâches
2. valider (committer) les tâches
3. rien, se détendre

Skills associés