Github Copilot CLI + Spec Kit + Copilot Coding Agent
Ce guide pratique montre comment transformer une idée brute en implémentation structurée en combinant trois leviers complémentaires :
- Spec-Kit pour cadencer la pensée (définir le QUOI et le POURQUOI avant le COMMENT),
- Copilot CLI pour orchestrer des prompts reproductibles,
- Un Coding Agent (Copilot Workspace / VS Code) pour générer et affiner le code sous contraintes.
Objectif blog : vous donner une séquence simple, réutilisable dans n’importe quel dépôt, pour éviter le chaos des features démarrées trop vite. Chaque étape ci‑dessous est enrichie d’un mini cadre : « Objectif », « Bonnes pratiques », « Erreurs fréquentes ».
1- Install spec-kit
[GitHub - github/spec-kit: 💫 Toolkit to help you get started with Spec-Driven Development](https://github.com/github/spec-kit)
Initialiser spec-kit dans un projet existant
specify init .
![[Pasted image 20251007150219.png]]
Choix du shell
Spec-kit créé des scripts dans le dossier conformément au type script choisi. Exemple de choix de sh:
pocketbase-basic-template [main] ⚡ tree .specify/scripts/bash
.specify/scripts/bash
├── check-prerequisites.sh
├── common.sh
├── create-new-feature.sh
├── setup-plan.sh
└── update-agent-context.sh
Choix de l’agent IA
Spec-kit créé des prompts en fonction de l’Agent de Coding choisi. Exemple de choix de Copilot:
pocketbase-basic-template [main] ⚡ tree .github
.github
└── prompts
├── speckit.analyze.prompt.md
├── speckit.checklist.prompt.md
├── speckit.clarify.prompt.md
├── speckit.constitution.prompt.md
├── speckit.implement.prompt.md
├── speckit.plan.prompt.md
├── speckit.specify.prompt.md
└── speckit.tasks.prompt.md
```
### Configurations VsCode
Des configurations VsCode sont ajoutées pour autoriser tous les scripts SpecKit et recommander les prompts SpecKit aux agents.
```sh
pocketbase-basic-template [main] ⚡ cat .vscode/settings.json
{
"chat.promptFilesRecommendations": {
"speckit.constitution": true,
"speckit.specify": true,
"speckit.plan": true,
"speckit.tasks": true,
"speckit.implement": true
},
"chat.tools.terminal.autoApprove": {
".specify/scripts/bash/": true,
".specify/scripts/ps/": true
}
}
2- Ecrire la constitution du projet
La constitution du projet comporte les règles non négociables que l’agent de coding doit obligatoirement respecter dans le projet. Pour rédiger la constitution de mon code, j’utilise la commande /speckit.constitution dans mon agent Copilot VsCode comme ceci:
/speckit.constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements
La constitution de votre projet se trouve dans le fichier .specify/memory/constitution.md . Lisez la version générée et mettez à jour comme bon vous semble.
3 - Creation des spécification de l’application
Utilisez la commande /speckit.specify pour décrire ce que vous voulez construire. Concentrez-vous sur le quoi et le pourquoi, pas sur la pile technologique.
/speckit.specify Build a SaaS boilerplate that helps developers launch subscription-based web applications faster.
The application should include user authentication with email and social logins.
Users can manage their profiles, update personal information, and reset passwords.
The system supports multiple roles such as admin, user, and support.
Administrators can view and manage users, subscriptions, and usage statistics.
The billing system allows users to subscribe to different plans with trials and automatic renewals.
Invoices and payment receipts are automatically generated and sent by email.
Each user has a personal dashboard displaying usage metrics and recent activity.
User belong to an Organization.
All resources in the app can be created, updated, deleted, or filtered through a clean CRUD interface.
Une branche Git est créé pour cette spécification. S’il y a des clarifications à donner, l’agent vous posera des question :
☁ pocketbase-basic-template [001-build-a-saas] ⚡
tree specs
specs
└── 001-build-a-saas
├── checklists
│ └── requirements.md
└── spec.md
```
# 4- Clarification des spécifications fonctionnelles (requise avant la planification)
Avec la spécification de base créée, vous pouvez désormais clarifier toutes les exigences qui n’ont pas été correctement capturées lors de la première version.
Vous devriez exécuter le **processus structuré de clarification** avant de créer le plan technique, afin de **réduire le travail de reprise** par la suite.
```sh
/speckit.clarify 001-build-a-saas
5- Generation du plan
Vous pouvez maintenant être précis concernant la pile technologique et les autres exigences techniques.
Vous pouvez utiliser la commande /speckit.plan intégrée au modèle de projet avec une invite du type suivant :
copilot --allow-all-tools -p ".github/prompts/speckit.plan.prompt.md We will use the **Go-based PocketBase framework** as the backend, leveraging its built-in **SQLite database** for data storage.
The **frontend** will be implemented using **Go HTML templates** combined with **Alpine.js** for interactivity and **DaisyUI** for a consistent and responsive user interface. Login will be done with email and password or Azure AD B2C. Have in mind that our hosting stack is based on Azure. Stripe for billing"
Vérifiez le document research.md pour vous assurer que la bonne pile technologique est utilisée, conformément à vos instructions. Vous pouvez demander à Copilot CLI de l’affiner si certains composants semblent particuliers, ou même de vérifier la version installée localement de la plateforme ou du framework que vous souhaitez utiliser.
copilot --allow-all-tools -p "I want you to go through the implementation plan and implementation details, looking for areas that could benefit from additional research as Go PocketBase is a rapidly changing framework. For those areas that you identify that
require further research, I want you to update the research document with additional details about the specific versions that we are going to be using in this application and spawn parallel research tasks to clarify
any details using research from the web or context7 mcp tool."
6- Genérer les taches
copilot --allow-all-tools -p "create plan using .github/prompts/speckit.tasks.prompt.md"
7- Générer des checks de qualidate
copilot --allow-all-tools -p "execute this prompt: .github/prompts/speckit.checklist.prompt.md"
8 - Coding
copilot --allow-all-tools -p "execute this prompt: .github/prompts/speckit.implement.prompt.md"