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
- Récupérer les Instructions Disponibles : Extraire la liste des instructions et descriptions depuis awesome-copilot README.instructions.md. Doit utiliser l'outil
#fetch. - Scanner les Instructions Locales : Découvrir les fichiers d'instructions existants dans le dossier
.github/instructions/ - Extraire les Descriptions : Lire le frontmatter des fichiers d'instructions locaux pour obtenir les descriptions et les motifs
applyTo - 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>) - 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)
- Analyser le Contexte : Examiner l'historique de chat, les fichiers du repository et les besoins actuels du projet
- Comparer les Existantes : Vérifier contre les instructions déjà disponibles dans ce repository
- Valider la Pertinence : Comparer les instructions disponibles contre les motifs et exigences identifiés
- Présenter les Options : Afficher les instructions pertinentes avec descriptions, justification et statut de disponibilité, incluant les instructions obsolètes
- Valider : S'assurer que les instructions suggérées ajouteraient de la valeur non déjà couverte par les instructions existantes
- 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É.
- 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
#fetchpour télécharger les ressources, mais peut utilisercurlvia l'outil#runInTerminalpour s'assurer que tout le contenu est récupéré - Utiliser l'outil
#todospour suivre la progression
- Télécharger les nouvelles instructions dans le dossier
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
- Lister tous les fichiers
*.instructions.mddans le répertoireinstructions/ - Pour chaque fichier découvert, lire le frontmatter pour extraire la
descriptionet les motifsapplyTo - Construire un inventaire complet des instructions existantes avec leurs motifs de fichiers applicables
- Utiliser cet inventaire pour éviter de suggérer des doublons
Processus de Comparaison des Versions
- 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>
- Motif :
- Récupérer la version distante en utilisant l'outil
#fetch - Comparer l'intégralité du contenu du fichier (incluant le frontmatter et le corps)
- Identifier les différences spécifiques :
- Changements du frontmatter (description, motifs applyTo)
- Mises à jour du contenu (directives, exemples, bonnes pratiques)
- Documenter les différences clés pour les instructions obsolètes
- 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 frontmatterapplyTo) - 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
githubRepopour 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 :
- Les inclure dans le tableau de sortie avec le statut ⚠️
- Documenter les différences spécifiques dans la colonne "Justification de la Suggestion"
- Fournir une recommandation de mise à jour avec les changements clés notés
- Quand l'utilisateur demande une mise à jour, remplacer le fichier local entier par la version distante
- Préserver l'emplacement du fichier dans le répertoire
.github/instructions/