suggest-awesome-github-copilot-instructions

Par github · awesome-copilot

Suggère des fichiers d'instructions GitHub Copilot pertinents issus du dépôt awesome-copilot, en fonction du contexte actuel du dépôt et de l'historique du chat, en évitant les doublons avec les instructions déjà présentes dans ce dépôt, et en identifiant les instructions obsolètes qui nécessitent une mise à jour.

npx skills add https://github.com/github/awesome-copilot --skill suggest-awesome-github-copilot-instructions

Suggérer des Instructions GitHub Copilot Awesome

Analyser le contexte du repository actuel et suggérer les fichiers copilot-instruction pertinents du repository awesome-copilot de GitHub qui ne sont pas déjà disponibles dans ce repository.

Processus

  1. Récupérer les Instructions Disponibles : Extraire la liste des instructions et descriptions depuis awesome-copilot README.instructions.md. Doit utiliser l'outil #fetch.
  2. Scanner les Instructions Locales : Découvrir les fichiers d'instructions existants dans le dossier .github/instructions/
  3. Extraire les Descriptions : Lire le frontmatter des fichiers d'instructions locaux pour obtenir les descriptions et les motifs applyTo
  4. Récupérer les Versions Distantes : Pour chaque instruction locale, récupérer la version correspondante depuis le repository awesome-copilot en utilisant les URLs GitHub raw (par ex., https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>)
  5. Comparer les Versions : Comparer le contenu des instructions locales avec les versions distantes pour identifier :
    • Les instructions à jour (correspondance exacte)
    • Les instructions obsolètes (contenu différent)
    • Les différences clés dans les instructions obsolètes (description, motifs applyTo, contenu)
  6. Analyser le Contexte : Examiner l'historique de chat, les fichiers du repository et les besoins actuels du projet
  7. Comparer les Existantes : Vérifier contre les instructions déjà disponibles dans ce repository
  8. Valider la Pertinence : Comparer les instructions disponibles contre les motifs et exigences identifiés
  9. Présenter les Options : Afficher les instructions pertinentes avec descriptions, justification et statut de disponibilité, incluant les instructions obsolètes
  10. Valider : S'assurer que les instructions suggérées ajouteraient de la valeur non déjà couverte par les instructions existantes
  11. Résultat : Fournir un tableau structuré avec suggestions, descriptions et liens à la fois vers les instructions awesome-copilot et les instructions locales similaires ATTENDRE la demande de l'utilisateur pour procéder à l'installation ou aux mises à jour d'instructions spécifiques. NE PAS INSTALLER OU METTRE À JOUR SAUF SI DEMANDÉ.
  12. Télécharger/Mettre à Jour les Ressources : Pour les instructions demandées, automatiquement :
    • Télécharger les nouvelles instructions dans le dossier .github/instructions/
    • Mettre à jour les instructions obsolètes en remplaçant par la dernière version depuis awesome-copilot
    • Ne PAS ajuster le contenu des fichiers
    • Utiliser l'outil #fetch pour télécharger les ressources, mais peut utiliser curl via l'outil #runInTerminal pour s'assurer que tout le contenu est récupéré
    • Utiliser l'outil #todos pour suivre la progression

Critères d'Analyse du Contexte

🔍 Motifs du Repository :

  • Langages de programmation utilisés (.cs, .js, .py, .ts, etc.)
  • Indicateurs de framework (ASP.NET, React, Azure, Next.js, etc.)
  • Types de projets (applications web, APIs, bibliothèques, outils)
  • Exigences du workflow de développement (testing, CI/CD, déploiement)

🗨️ Contexte de l'Historique de Chat :

  • Discussions récentes et points douloureux
  • Questions spécifiques à une technologie
  • Discussions sur les normes de codage
  • Exigences du workflow de développement

Format de Sortie

Afficher les résultats de l'analyse dans un tableau structuré comparant les instructions awesome-copilot avec les instructions existantes du repository :

Instruction Awesome-Copilot Description Déjà Installée Instruction Locale Similaire Justification de la Suggestion
blazor.instructions.md Directives de développement Blazor ✅ Oui blazor.instructions.md Déjà couverte par les instructions Blazor existantes
reactjs.instructions.md Normes de développement ReactJS ❌ Non Aucune Améliorerait le développement React avec les motifs établis
java.instructions.md Bonnes pratiques de développement Java ⚠️ Obsolète java.instructions.md Le motif applyTo diffère : la version distante utilise '**/*.java' vs locale '*.java' - Mise à jour recommandée

Processus de Découverte des Instructions Locales

  1. Lister tous les fichiers *.instructions.md dans le répertoire instructions/
  2. Pour chaque fichier découvert, lire le frontmatter pour extraire la description et les motifs applyTo
  3. Construire un inventaire complet des instructions existantes avec leurs motifs de fichiers applicables
  4. Utiliser cet inventaire pour éviter de suggérer des doublons

Processus de Comparaison des Versions

  1. Pour chaque fichier d'instructions local, construire l'URL GitHub raw pour récupérer la version distante :
    • Motif : https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>
  2. Récupérer la version distante en utilisant l'outil #fetch
  3. Comparer l'intégralité du contenu du fichier (incluant le frontmatter et le corps)
  4. Identifier les différences spécifiques :
    • Changements du frontmatter (description, motifs applyTo)
    • Mises à jour du contenu (directives, exemples, bonnes pratiques)
  5. Documenter les différences clés pour les instructions obsolètes
  6. Calculer la similarité pour déterminer si une mise à jour est nécessaire

Exigences de Structure de Fichier

Selon la documentation GitHub, les fichiers copilot-instructions doivent être :

  • Instructions au niveau du repository : .github/copilot-instructions.md (s'applique à l'ensemble du repository)
  • Instructions spécifiques au chemin : .github/instructions/NAME.instructions.md (s'applique à des motifs de fichiers spécifiques via le frontmatter applyTo)
  • Instructions de la communauté : instructions/NAME.instructions.md (pour partage et distribution)

Structure du Frontmatter

Les fichiers d'instructions dans awesome-copilot utilisent ce format de frontmatter :

---
description: 'Brève description de ce que fournit cette instruction'
applyTo: '**/*.js,**/*.ts' # Optionnel : motifs glob pour la correspondance de fichiers
---

Exigences

  • Utiliser l'outil githubRepo pour obtenir le contenu depuis le dossier des instructions du repository awesome-copilot
  • Scanner le système de fichiers local pour les instructions existantes dans le répertoire .github/instructions/
  • Lire le frontmatter YAML depuis les fichiers d'instructions locaux pour extraire les descriptions et motifs applyTo
  • Comparer les instructions locales avec les versions distantes pour détecter les instructions obsolètes
  • Comparer avec les instructions existantes dans ce repository pour éviter les doublons
  • Se concentrer sur les lacunes de la couverture actuelle de la bibliothèque d'instructions
  • Valider que les instructions suggérées s'alignent avec l'objectif et les normes du repository
  • Fournir une justification claire pour chaque suggestion
  • Inclure les liens à la fois vers les instructions awesome-copilot et les instructions locales similaires
  • Identifier clairement les instructions obsolètes avec les différences spécifiques notées
  • Considérer la compatibilité de la stack technologique et les besoins spécifiques au projet
  • Ne pas fournir d'informations ou de contexte supplémentaires au-delà du tableau et de l'analyse

Référence des Icônes

  • ✅ Déjà installée et à jour
  • ⚠️ Installée mais obsolète (mise à jour disponible)
  • ❌ Non installée dans le repo

Gestion des Mises à Jour

Quand des instructions obsolètes sont identifiées :

  1. Les inclure dans le tableau de sortie avec le statut ⚠️
  2. Documenter les différences spécifiques dans la colonne "Justification de la Suggestion"
  3. Fournir une recommandation de mise à jour avec les changements clés notés
  4. Quand l'utilisateur demande une mise à jour, remplacer le fichier local entier par la version distante
  5. Préserver l'emplacement du fichier dans le répertoire .github/instructions/

Skills similaires