copilot-spaces

Par github · awesome-copilot

Utilisez Copilot Spaces pour fournir un contexte propre à un projet dans vos conversations. Utilisez cette skill lorsque les utilisateurs mentionnent un « Copilot space », souhaitent charger du contexte depuis une base de connaissances partagée, découvrir les spaces disponibles, ou poser des questions fondées sur une documentation de projet, du code et des instructions soigneusement sélectionnés.

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

Copilot Spaces

Utilisez Copilot Spaces pour intégrer un contexte curé et spécifique à un projet dans vos conversations. Un Space est une collection partagée de repositories, de fichiers, de documentation et d'instructions qui ancre les réponses de Copilot dans le code et les connaissances réels de votre équipe.

Outils disponibles

Outils MCP (lecture seule)

Outil Objectif
mcp__github__list_copilot_spaces Lister tous les espaces accessibles à l'utilisateur actuel
mcp__github__get_copilot_space Charger le contexte complet d'un espace par propriétaire et nom

REST API via gh api (CRUD complet)

L'API REST Spaces supporte la création, la mise à jour, la suppression d'espaces et la gestion des collaborateurs. Le serveur MCP n'expose que les opérations de lecture, donc utilisez gh api pour les écritures.

Espaces utilisateur :

Méthode Endpoint Objectif
POST /users/{username}/copilot-spaces Créer un espace
GET /users/{username}/copilot-spaces Lister les espaces
GET /users/{username}/copilot-spaces/{number} Obtenir un espace
PUT /users/{username}/copilot-spaces/{number} Mettre à jour un espace
DELETE /users/{username}/copilot-spaces/{number} Supprimer un espace

Espaces d'organisation : Même modèle sous /orgs/{org}/copilot-spaces/...

Collaborateurs : Ajouter, lister, mettre à jour et supprimer des collaborateurs sur .../collaborators

Exigences de portée : Le PAT nécessite read:user pour les lectures, user pour les écritures. Ajoutez avec gh auth refresh -h github.com -s user.

Note : Cette API est fonctionnelle mais pas encore dans la documentation publique de l'API REST. Elle peut nécessiter le flag de fonctionnalité copilot_spaces_api.

Quand utiliser les Spaces

  • L'utilisateur mentionne « Copilot space » ou demande de « charger un espace »
  • L'utilisateur souhaite des réponses ancrées dans une documentation, un code ou des standards de projet spécifiques
  • L'utilisateur demande « quels espaces sont disponibles ? » ou « trouver un espace pour X »
  • L'utilisateur a besoin d'un contexte d'onboarding, de documentation d'architecture ou de conseils spécifiques à l'équipe
  • L'utilisateur souhaite suivre un workflow structuré défini dans un Space (modèles, listes de contrôle, processus multi-étapes)

Workflow

1. Découvrir les Spaces

Quand un utilisateur demande quels espaces sont disponibles ou que vous devez trouver le bon espace :

Appelez mcp__github__list_copilot_spaces

Cela retourne tous les espaces auxquels l'utilisateur peut accéder, chacun avec un name et owner_login. Présentez les correspondances pertinentes à l'utilisateur.

Pour filtrer les espaces d'un utilisateur spécifique, comparez owner_login au nom d'utilisateur (par exemple, « montrez-moi mes espaces »).

2. Charger un Space

Quand un utilisateur nomme un espace spécifique ou que vous avez identifié le bon :

Appelez mcp__github__get_copilot_space avec :
  owner: "org-or-user"    (le owner_login de la liste)
  name: "Space Name"      (nom exact du space, sensible à la casse)

Cela retourne le contenu complet de l'espace : documentation jointe, contexte de code, instructions personnalisées et tout autre matériel curé. Utilisez ce contexte pour informer vos réponses.

3. Suivre les indices

Le contenu d'un space référence souvent des ressources externes : problèmes GitHub, tableaux de bord, repos, discussions ou autres outils. Récupérez proactivement ces ressources en utilisant d'autres outils MCP pour rassembler un contexte complet. Par exemple :

  • Un space référence un problème de suivi d'initiative. Utilisez issue_read pour obtenir les derniers commentaires.
  • Un space pointe vers un tableau de projet. Utilisez les outils de projet pour vérifier le statut actuel.
  • Un space mentionne un plan directeur du repo. Utilisez get_file_contents pour le lire.

4. Répondre ou exécuter

Une fois chargé, utilisez le contenu du space en fonction de ce qu'il contient :

Si le space contient du matériel de référence (docs, code, standards) :

  • Répondez à des questions sur l'architecture, les motifs ou les standards du projet
  • Générez du code qui suit les conventions de l'équipe
  • Déboguez les problèmes en utilisant la connaissance spécifique au projet

Si le space contient des instructions de workflow (modèles, processus étape par étape) :

  • Suivez le workflow tel que défini, étape par étape
  • Rassemblez les données des sources que le workflow spécifie
  • Produisez une sortie au format que le workflow définit
  • Montrez la progression après chaque étape pour que l'utilisateur puisse orienter

5. Gérer les Spaces (via gh api)

Quand un utilisateur souhaite créer, mettre à jour ou supprimer un espace, utilisez gh api. Trouvez d'abord le numéro de space à partir de l'endpoint de liste.

Mettre à jour les instructions d'un space :

gh api users/{username}/copilot-spaces/{number} \
  -X PUT \
  -f general_instructions="Nouvelles instructions ici"

Mettre à jour le nom, la description ou les instructions ensemble :

gh api users/{username}/copilot-spaces/{number} \
  -X PUT \
  -f name="Nom mis à jour" \
  -f description="Description mise à jour" \
  -f general_instructions="Instructions mises à jour"

Créer un nouvel espace :

gh api users/{username}/copilot-spaces \
  -X POST \
  -f name="Mon nouvel espace" \
  -f general_instructions="Aidez-moi avec..." \
  -f visibility="private"

Joindre des ressources (remplace la liste entière de ressources) :

{
  "resources_attributes": [
    { "resource_type": "free_text", "metadata": { "name": "Notes", "text": "Contenu ici" } },
    { "resource_type": "github_issue", "metadata": { "repository_id": 12345, "number": 42 } },
    { "resource_type": "github_file", "metadata": { "repository_id": 12345, "file_path": "docs/guide.md" } }
  ]
}

Supprimer un espace :

gh api users/{username}/copilot-spaces/{number} -X DELETE

Champs modifiables : name, description, general_instructions, icon_type, icon_color, visibility ("private"/"public"), base_role ("no_access"/"reader"), resources_attributes

Exemples

Exemple 1 : L'utilisateur demande un Space

Utilisateur : « Charger le copilot space Accessibilité »

Action :

  1. Appelez mcp__github__get_copilot_space avec owner "github", name "Accessibility"
  2. Utilisez le contexte retourné pour répondre aux questions sur les standards d'accessibilité, les grades MAS, les processus de conformité, etc.

Exemple 2 : L'utilisateur veut trouver des Spaces

Utilisateur : « Quels copilot spaces sont disponibles pour notre équipe ? »

Action :

  1. Appelez mcp__github__list_copilot_spaces
  2. Filtrez/présentez les espaces pertinents pour l'organisation ou les intérêts de l'utilisateur
  3. Proposez de charger tout espace qui l'intéresse

Exemple 3 : Question ancrée dans le contexte

Utilisateur : « En utilisant le space sécurité, quelle est notre politique sur la détection de secrets ? »

Action :

  1. Appelez mcp__github__get_copilot_space avec le propriétaire et le nom appropriés
  2. Trouvez la politique pertinente dans le contenu du space
  3. Répondez basé sur la documentation interne réelle

Exemple 4 : Space comme moteur de workflow

Utilisateur : « Écrivez ma mise à jour hebdomadaire en utilisant le space PM Weekly Updates »

Action :

  1. Appelez mcp__github__get_copilot_space pour charger le space. Il contient un format de modèle et des instructions étape par étape.
  2. Suivez le workflow du space : extrayez les données des problèmes d'initiative joints, rassemblez les métriques, rédigez chaque section.
  3. Récupérez les ressources externes référencées par le space (problèmes de suivi, tableaux de bord) en utilisant d'autres outils MCP.
  4. Montrez le brouillon après chaque section pour que l'utilisateur puisse examiner et combler les lacunes.
  5. Produisez le résultat final au format que le space définit.

Exemple 5 : Mettre à jour les instructions du Space programmatiquement

Utilisateur : « Mettre à jour mon space PM Weekly Updates pour inclure une nouvelle directive d'écriture »

Action :

  1. Appelez mcp__github__list_copilot_spaces et trouvez le numéro du space (par exemple, 19).
  2. Appelez mcp__github__get_copilot_space pour lire les instructions actuelles.
  3. Modifiez le texte des instructions comme demandé.
  4. Poussez la mise à jour :
    gh api users/labudis/copilot-spaces/19 -X PUT -f general_instructions="instructions mises à jour..."

Conseils

  • Les noms des Spaces sont sensibles à la casse. Utilisez le nom exact de list_copilot_spaces.
  • Les Spaces peuvent être possédés par des utilisateurs ou des organisations. Fournissez toujours owner et name.
  • Le contenu d'un Space peut être volumineux (20 KB+). S'il est retourné comme fichier temporaire, utilisez grep ou view_range pour trouver les sections pertinentes plutôt que de tout lire à la fois.
  • Si un space n'est pas trouvé, suggérez de lister les espaces disponibles pour trouver le bon nom.
  • Les Spaces se mettent à jour automatiquement quand les repos sous-jacents changent, donc le contexte est toujours actuel.
  • Certains spaces contiennent des instructions personnalisées qui doivent guider votre comportement (standards de codage, motifs préférés, workflows). Traitez-les comme des directives, pas comme des suggestions.
  • Les opérations d'écriture (gh api pour créer/mettre à jour/supprimer) nécessitent la portée PAT user. Si vous recevez un 404 sur les opérations d'écriture, exécutez gh auth refresh -h github.com -s user.
  • Les mises à jour de ressources remplacent le tableau entier. Pour ajouter une ressource, incluez toutes les ressources existantes plus la nouvelle. Pour en supprimer une, incluez { "id": 123, "_destroy": true } dans le tableau.

Skills similaires