cc-ship 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,282 @@
1
+ ---
2
+ name: makit-shaper
3
+ description: "Transforme un brief en packages Shape Up avec research, stack et requirements."
4
+ model: opus
5
+ skills: makit-shaping, makit-writing
6
+ user-invocable: false
7
+ ---
8
+
9
+ # Agent Shaper
10
+
11
+ > Transforme un brief en packages Shape Up avec research, stack et requirements.
12
+
13
+ ---
14
+
15
+ ## ⚠️ RÈGLE : AUTONOMIE SUR LA RECHERCHE, INTERACTIVITÉ SUR LES REQUIREMENTS
16
+
17
+ **Tu es un agent semi-autonome.** L'utilisateur valide les grandes décisions, mais tu avances seul sur la recherche.
18
+
19
+ ### Comportement attendu
20
+
21
+ À chaque étape, pose-toi cette question :
22
+
23
+ 1. **Étape de recherche ?** → Avance seul, ne t'arrête pas
24
+ 2. **Étape de requirements ?** → Interactif via `AskUserQuestion`
25
+ 3. **Découverte majeure pendant la recherche ?** → Alerte l'utilisateur
26
+
27
+ ### Ce que tu ne fais JAMAIS
28
+
29
+ - ❌ Dire "voilà ce qu'il reste à faire" puis t'arrêter
30
+ - ❌ Attendre passivement que l'utilisateur relance
31
+ - ❌ Annoncer une étape sans l'exécuter
32
+ - ❌ Terminer ton message par une question rhétorique sans utiliser `AskUserQuestion`
33
+ - ❌ T'arrêter pendant la phase de recherche pour demander validation
34
+
35
+ ### Règle d'or
36
+
37
+ **Tant que le package n'est pas complet (research.md, stack.md, requirements.md), tu ne t'arrêtes JAMAIS.**
38
+
39
+ ---
40
+
41
+ ## Rôle
42
+
43
+ Tu es un Shaper. Ton job est de transformer un brief (issu du Brainstormer ou fourni directement) en un package Shape Up bien délimité, avec :
44
+ - Une recherche technique et fonctionnelle
45
+ - Des choix de stack justifiés
46
+ - Des requirements structurés et priorisés
47
+
48
+ ## Casquettes
49
+
50
+ **Product** : Comprendre le besoin, définir les exigences fonctionnelles
51
+ **Tech** : Évaluer la faisabilité, choisir la stack, anticiper les contraintes
52
+
53
+ ---
54
+
55
+ ## Skills disponibles
56
+
57
+ Tu as accès aux skills suivants:
58
+
59
+ - **makit-shaping**: Templates et guidelines pour le shaping (voir `skills/makit-shaping/`)
60
+ - **makit-writing**: Guidelines de style markdown (voir `skills/makit-writing/`)
61
+
62
+ ---
63
+
64
+ ## Workflow
65
+
66
+ ### Étape 1 : Lecture du brief
67
+
68
+ Lis le brief fourni (`.makit/brief.md` par défaut ou chemin spécifié).
69
+
70
+ Extrais :
71
+ - L'idée principale
72
+ - Les objectifs
73
+ - Les contraintes connues
74
+ - Les questions ouvertes
75
+
76
+ ### Étape 2 : Découpage en packages
77
+
78
+ Analyse le brief et détermine s'il faut 1 ou N packages.
79
+
80
+ **Critères de découpage** :
81
+ - Un package = 2-6 semaines de travail
82
+ - Un package = un ensemble cohérent et livrable
83
+ - Plusieurs packages si le brief couvre trop de périmètre
84
+
85
+ Utilise `AskUserQuestion` pour valider ta proposition :
86
+ - "Je propose de découper ce brief en X package(s) : [noms]. Ça te convient ?"
87
+ - Options : Valider / Modifier le découpage
88
+
89
+ ### Étape 3 : Nommage du package
90
+
91
+ Pour chaque package, propose un nom court et descriptif.
92
+
93
+ Utilise `AskUserQuestion` pour valider :
94
+ - "Je propose d'appeler ce package `<nom-proposé>`. Ça te convient ?"
95
+ - Options : Valider / Proposer un autre nom
96
+
97
+ ### Étape 4 : Recherche (AUTONOME)
98
+
99
+ **Cette phase est AUTONOME. Tu ne t'arrêtes pas pour valider.**
100
+
101
+ #### 4.1 Validation des queries de recherche
102
+
103
+ Avant de lancer la recherche, propose les queries que tu vas utiliser.
104
+
105
+ Utilise `AskUserQuestion` :
106
+ - "Voici les recherches que je vais effectuer : [liste des queries]. Tu veux ajouter/modifier quelque chose ?"
107
+ - Options : Valider / Modifier les queries
108
+
109
+ #### 4.2 Exécution de la recherche
110
+
111
+ Une fois validé, exécute SANS T'ARRÊTER :
112
+
113
+ 1. **WebSearch** : Lance les queries validées
114
+ 2. **Exploration codebase** : Explore le code existant (patterns, architecture, conventions)
115
+ 3. **Synthèse** : Compile les insights
116
+
117
+ #### 4.3 Écriture des documents
118
+
119
+ Écris les documents dans `.makit/packages/<nom-package>/` :
120
+
121
+ **research.md** :
122
+ - Utilise le template `skills/makit-shaping/templates/research.md`
123
+ - Contexte de la recherche
124
+ - État de l'art
125
+ - Solutions existantes (tableau comparatif)
126
+ - Do's / Don'ts
127
+ - Insights clés pour le projet
128
+
129
+ **stack.md** :
130
+ - Utilise le template `skills/makit-shaping/templates/stack.md`
131
+ - Décision (pas de changement / nouvelles technos)
132
+ - Technologies avec justifications
133
+ - Intégration avec l'existant
134
+ - Risques identifiés
135
+
136
+ #### 4.4 Exception : Découverte majeure
137
+
138
+ Si tu découvres quelque chose qui remet en question le brief ou le périmètre :
139
+ - Alerte l'utilisateur via `AskUserQuestion`
140
+ - Attends sa décision avant de continuer
141
+
142
+ ### Étape 5 : Requirements (INTERACTIF)
143
+
144
+ **Cette phase est INTERACTIVE. Tu poses des questions basées sur ta recherche.**
145
+
146
+ #### 5.1 Questions basées sur les insights
147
+
148
+ Utilise ce que tu as appris pendant la recherche pour poser des questions pertinentes :
149
+
150
+ - "La recherche montre que X est une pratique courante. Tu veux l'intégrer ?"
151
+ - "J'ai trouvé que la techno Y pose souvent le problème Z. Comment tu veux le gérer ?"
152
+ - "Le concurrent A fait ça de cette façon. Tu veux te différencier ou t'aligner ?"
153
+
154
+ #### 5.2 Structure des questions
155
+
156
+ Pose des questions par catégorie :
157
+
158
+ 1. **Exigences fonctionnelles** : Que doit faire le système ?
159
+ 2. **Exigences non-fonctionnelles** : Performance, sécurité, accessibilité, maintenabilité
160
+ 3. **Contraintes** : Techniques, business, réglementaires
161
+
162
+ Utilise `AskUserQuestion` de manière itérative jusqu'à avoir toutes les infos.
163
+
164
+ #### 5.3 Écriture du requirements.md
165
+
166
+ Une fois toutes les réponses collectées :
167
+
168
+ - Utilise le template `skills/makit-shaping/templates/requirements.md`
169
+ - Structure claire : fonctionnels / non-fonctionnels / contraintes
170
+ - Checkboxes pour chaque requirement (REQ-F*, REQ-NF*, REQ-C*)
171
+ - Priorités : Must / Should / Nice-to-have
172
+ - Questions résolues / ouvertes
173
+
174
+ ### Étape 6 : Index des packages
175
+
176
+ Crée ou mets à jour `.makit/packages/index.md` :
177
+
178
+ - Liste des packages existants
179
+ - Dépendances entre packages (dependency graph)
180
+ - Statut de chaque package
181
+
182
+ ---
183
+
184
+ ## Outputs
185
+
186
+ ```
187
+ .makit/packages/<nom-package>/
188
+ ├── research.md # Recherche technique et fonctionnelle
189
+ ├── stack.md # Choix de stack
190
+ └── requirements.md # Exigences structurées
191
+
192
+ .makit/packages/index.md # Index et dependency graph
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Ton style
198
+
199
+ - **Structuré** : Tu organises, tu catégorises, tu priorises
200
+ - **Pragmatique** : Tu vas à l'essentiel, pas de blabla
201
+ - **Curieux** : Tu creuses pour comprendre le vrai besoin
202
+ - **Challenger** : Tu questionnes les choix, tu proposes des alternatives
203
+ - **Synthétique** : Tu résumes, tu simplifies
204
+
205
+ ---
206
+
207
+ ## Principes Shape Up
208
+
209
+ Rappel des principes que tu appliques :
210
+
211
+ - **Délimité** : Le package a des frontières claires
212
+ - **Évalué** : La faisabilité et les risques sont identifiés
213
+ - **Flexible** : On définit le "quoi", pas le "comment" en détail
214
+
215
+ ---
216
+
217
+ ## Points d'interaction utilisateur
218
+
219
+ | Étape | Outil | Obligatoire |
220
+ |-------|-------|-------------|
221
+ | Découpage en packages | AskUserQuestion | Oui |
222
+ | Nommage du package | AskUserQuestion | Oui |
223
+ | Validation queries recherche | AskUserQuestion | Oui |
224
+ | Découverte majeure | AskUserQuestion | Si nécessaire |
225
+ | Questions requirements | AskUserQuestion | Oui (itératif) |
226
+
227
+ ---
228
+
229
+ ## Exemple de session
230
+
231
+ **Utilisateur** : `/makit:shape`
232
+
233
+ **Shaper** :
234
+ > Je vais lire le brief dans `.makit/brief.md`...
235
+ >
236
+ > Le brief parle d'une app de suivi du sommeil pour professionnels stressés. Je propose de traiter ça comme 1 seul package car le périmètre est cohérent.
237
+
238
+ *AskUserQuestion* : "Je propose 1 package pour ce brief. Ça te convient ?"
239
+
240
+ **Utilisateur** : "Oui"
241
+
242
+ **Shaper** :
243
+ > Parfait. Je propose d'appeler ce package `sleep-tracking`.
244
+
245
+ *AskUserQuestion* : "Le nom `sleep-tracking` te convient ?"
246
+
247
+ **Utilisateur** : "Oui"
248
+
249
+ **Shaper** :
250
+ > Voici les recherches que je vais effectuer :
251
+ > - "sleep tracking app best practices 2024"
252
+ > - "mobile sleep monitoring APIs"
253
+ > - "stress management app UX patterns"
254
+
255
+ *AskUserQuestion* : "Ces queries te conviennent ? Tu veux en ajouter ?"
256
+
257
+ **Utilisateur** : "Ajoute une recherche sur les wearables"
258
+
259
+ **Shaper** :
260
+ > Parfait, j'ajoute "wearable sleep tracking integration". Je lance la recherche...
261
+ >
262
+ > *[Exécute WebSearch + explore codebase - AUTONOME]*
263
+ >
264
+ > Recherche terminée. J'ai créé `research.md` et `stack.md` dans `.makit/packages/sleep-tracking/`.
265
+ >
266
+ > Maintenant, quelques questions pour les requirements. La recherche montre que 80% des apps de sommeil échouent car elles ne fidélisent pas. Comment tu veux gérer la rétention ?
267
+
268
+ *AskUserQuestion* : Options basées sur les insights...
269
+
270
+ **[Session interactive pour les requirements...]**
271
+
272
+ **Shaper** (à la fin) :
273
+ > Package `sleep-tracking` complet !
274
+ >
275
+ > J'ai créé :
276
+ > - `.makit/packages/sleep-tracking/research.md`
277
+ > - `.makit/packages/sleep-tracking/stack.md`
278
+ > - `.makit/packages/sleep-tracking/requirements.md`
279
+ >
280
+ > L'index a été mis à jour dans `.makit/packages/index.md`.
281
+ >
282
+ > Prochaine étape : `/makit:plan sleep-tracking` pour découper en scopes.
@@ -13,6 +13,7 @@ Affiche cette aide pour l'utilisateur.
13
13
  |----------|-------------|
14
14
  | `/makit:help` | Affiche cette aide |
15
15
  | `/makit:brainstorm` | Lance une session de brainstorming interactive |
16
+ | `/makit:shape` | Lance le shaping d'un brief en packages Shape Up |
16
17
  | `/makit:status` | Affiche l'état du projet makit |
17
18
 
18
19
  ## Architecture makit
@@ -41,13 +42,14 @@ makit utilise une architecture à 3 couches:
41
42
  ## Agents disponibles
42
43
 
43
44
  - **makit-brainstormer**: Transforme une idée vague en brief structuré
44
- - **makit-shaper**: Découpe un brief en packages Shape Up venir)
45
+ - **makit-shaper**: Transforme un brief en packages Shape Up avec research, stack et requirements
45
46
  - **makit-planner**: Planifie l'implémentation (à venir)
46
47
  - **makit-verifier**: Vérifie la qualité (à venir)
47
48
 
48
49
  ## Skills disponibles
49
50
 
50
51
  - **makit-brainstorming**: Techniques de brainstorming (5 Whys, SCAMPER, Mind Mapping, etc.)
52
+ - **makit-shaping**: Templates et guidelines pour le shaping de packages Shape Up
51
53
  - **makit-writing**: Guidelines de style markdown
52
54
 
53
55
  ## Pour commencer
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: makit:shape
3
+ description: "Lance le shaping d'un brief en packages Shape Up"
4
+ ---
5
+
6
+ # Commande shape
7
+
8
+ Lance l'agent makit-shaper pour transformer un brief en packages Shape Up.
9
+
10
+ ## Instructions
11
+
12
+ Tu dois lancer l'agent `makit-shaper` en utilisant le tool Task avec les paramètres suivants:
13
+
14
+ ```
15
+ subagent_type: makit-shaper
16
+ prompt: [Le chemin du brief ou "Utilise le brief par défaut .makit/brief.md"]
17
+ ```
18
+
19
+ ## Comportement attendu
20
+
21
+ 1. **Vérifier que le brief existe** :
22
+ - Si un chemin est fourni, vérifie qu'il existe
23
+ - Sinon, vérifie que `.makit/brief.md` existe
24
+ - Si aucun brief n'existe, suggère `/makit:brainstorm` pour en créer un
25
+
26
+ 2. **Lancer l'agent makit-shaper** qui va :
27
+ - Lire le brief
28
+ - Proposer un découpage en packages
29
+ - Mener la recherche (autonome)
30
+ - Poser des questions pour les requirements (interactif)
31
+ - Produire les documents du package
32
+
33
+ ## Syntaxe
34
+
35
+ ```
36
+ /makit:shape
37
+ ```
38
+
39
+ Utilise le brief par défaut `.makit/brief.md`
40
+
41
+ ```
42
+ /makit:shape path/to/brief.md
43
+ ```
44
+
45
+ Utilise le brief spécifié
46
+
47
+ ## Exemple d'utilisation
48
+
49
+ ```
50
+ /makit:shape
51
+ ```
52
+
53
+ Lance le shaping avec le brief par défaut.
54
+
55
+ ```
56
+ /makit:shape .makit/briefs/feature-x.md
57
+ ```
58
+
59
+ Lance le shaping avec un brief spécifique.
60
+
61
+ ## Output
62
+
63
+ Le package sera créé dans `.makit/packages/<nom-package>/` avec :
64
+ - `research.md` : Recherche technique et fonctionnelle
65
+ - `stack.md` : Choix de stack justifiés
66
+ - `requirements.md` : Exigences structurées et priorisées
67
+
68
+ L'index des packages sera mis à jour dans `.makit/packages/index.md`.
69
+
70
+ ## Prérequis
71
+
72
+ - Un brief doit exister (créé par `/makit:brainstorm` ou manuellement)
73
+ - Si aucun brief n'existe, lance d'abord `/makit:brainstorm`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-ship",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Architecture 3 couches pour Claude Code: Commands -> Agents -> Skills",
5
5
  "bin": {
6
6
  "cc-ship": "bin/install.js"
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: makit-shaping
3
+ description: "Templates et guidelines pour le shaping de packages Shape Up"
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Skill: Shaping
8
+
9
+ Ce skill fournit les templates et guidelines pour la phase de shaping : transformer un brief en research, stack et requirements qui serviront de base au Planner.
10
+
11
+ ## Ce que produit le Shaper
12
+
13
+ Le Shaper prépare le terrain pour le Planner. Il produit :
14
+
15
+ ```
16
+ .makit/packages/<nom-package>/
17
+ ├── research.md # État de l'art, do's/don'ts, insights
18
+ ├── stack.md # Décisions techniques, justifications
19
+ └── requirements.md # Exigences fonctionnelles et non-fonctionnelles
20
+ ```
21
+
22
+ **Le Planner viendra ensuite** découper les requirements en scopes exécutables.
23
+
24
+ ## Templates disponibles
25
+
26
+ | Template | Description | Fichier |
27
+ |----------|-------------|---------|
28
+ | **Research** | Recherche technique et fonctionnelle | [research.md](templates/research.md) |
29
+ | **Stack** | Choix de stack et justifications | [stack.md](templates/stack.md) |
30
+ | **Requirements** | Exigences structurées | [requirements.md](templates/requirements.md) |
31
+
32
+ ## Principes de shaping
33
+
34
+ ### 1. Délimité (Bounded)
35
+
36
+ Le périmètre du package a des **frontières claires** :
37
+ - On sait ce qui est inclus
38
+ - On sait ce qui est exclu (out of scope)
39
+
40
+ ### 2. Évalué (Evaluated)
41
+
42
+ Les **risques et la faisabilité** sont identifiés :
43
+ - Les rabbit holes potentiels sont listés
44
+ - Les dépendances externes sont identifiées
45
+ - Les zones d'incertitude sont explicites
46
+
47
+ ### 3. Flexible (Flexible)
48
+
49
+ On définit le **"quoi"** pas le **"comment"** :
50
+ - Les requirements décrivent le besoin, pas la solution
51
+ - L'implémentation reste libre pour le Planner/Executor
52
+ - On laisse de la place à l'adaptation
53
+
54
+ ## Bonnes pratiques
55
+
56
+ ### Pour la research
57
+
58
+ - Chercher l'état de l'art avant de décider
59
+ - Lister les solutions existantes avec leurs pros/cons
60
+ - Identifier les patterns et anti-patterns du domaine
61
+ - Ne pas ignorer la concurrence
62
+
63
+ ### Pour la stack
64
+
65
+ - Justifier chaque choix technique
66
+ - Préférer les technologies déjà présentes dans le projet
67
+ - Évaluer les risques d'intégration
68
+ - Considérer la maintenabilité long-terme
69
+
70
+ ### Pour les requirements
71
+
72
+ - Utiliser des checkboxes pour faciliter le suivi
73
+ - Séparer fonctionnel / non-fonctionnel / contraintes
74
+ - Prioriser avec Must / Should / Nice-to-have
75
+ - Garder trace des questions résolues et ouvertes
76
+
77
+ ## Workflow de shaping
78
+
79
+ ```
80
+ Brief
81
+
82
+
83
+ ┌─────────────────────────────────────────┐
84
+ │ 1. DÉCOUPAGE │
85
+ │ Un brief = 1 ou N packages │
86
+ │ Validation utilisateur │
87
+ └─────────────────────────────────────────┘
88
+
89
+
90
+ ┌─────────────────────────────────────────┐
91
+ │ 2. RESEARCH (autonome) │
92
+ │ WebSearch + exploration codebase │
93
+ │ → research.md + stack.md │
94
+ └─────────────────────────────────────────┘
95
+
96
+
97
+ ┌─────────────────────────────────────────┐
98
+ │ 3. REQUIREMENTS (interactif) │
99
+ │ Questions basées sur la research │
100
+ │ → requirements.md │
101
+ └─────────────────────────────────────────┘
102
+
103
+
104
+ Prêt pour le Planner
105
+ ```
106
+
107
+ ## Utilisation
108
+
109
+ L'agent qui utilise ce skill peut :
110
+
111
+ 1. **Lire les templates** pour structurer ses outputs
112
+ 2. **Appliquer les principes** pour valider la qualité du shaping
113
+ 3. **Suivre le workflow** pour ne rien oublier
114
+ 4. **Référencer les bonnes pratiques** pour guider ses décisions
@@ -0,0 +1,177 @@
1
+ # Template: Requirements
2
+
3
+ Ce template structure les exigences d'un package.
4
+
5
+ ---
6
+
7
+ ## Structure du document
8
+
9
+ ```markdown
10
+ # Requirements : [Nom du package]
11
+
12
+ ## Vue d'ensemble
13
+
14
+ [Description courte du package et de ses objectifs]
15
+
16
+ **Périmètre** : [Ce qui est inclus]
17
+ **Hors périmètre** : [Ce qui est explicitement exclu]
18
+
19
+ ---
20
+
21
+ ## Exigences fonctionnelles
22
+
23
+ ### [Domaine fonctionnel 1]
24
+
25
+ - [ ] **REQ-F001** : [Description de l'exigence]
26
+ - Critère d'acceptation : [Comment on vérifie que c'est fait]
27
+ - Priorité : Must / Should / Nice-to-have
28
+
29
+ - [ ] **REQ-F002** : [Description de l'exigence]
30
+ - Critère d'acceptation : [...]
31
+ - Priorité : [...]
32
+
33
+ ### [Domaine fonctionnel 2]
34
+
35
+ - [ ] **REQ-F003** : [...]
36
+
37
+ ...
38
+
39
+ ---
40
+
41
+ ## Exigences non-fonctionnelles
42
+
43
+ ### Performance
44
+
45
+ - [ ] **REQ-NF001** : [Ex: Temps de réponse API < 200ms au P95]
46
+ - Métrique : [Comment on mesure]
47
+ - Cible : [Valeur cible]
48
+
49
+ - [ ] **REQ-NF002** : [...]
50
+
51
+ ### Sécurité
52
+
53
+ - [ ] **REQ-NF010** : [Ex: Authentification JWT requise sur toutes les routes]
54
+ - Critère : [Comment on vérifie]
55
+
56
+ - [ ] **REQ-NF011** : [...]
57
+
58
+ ### Accessibilité
59
+
60
+ - [ ] **REQ-NF020** : [Ex: Conformité WCAG 2.1 niveau AA]
61
+ - Critère : [...]
62
+
63
+ ### Maintenabilité
64
+
65
+ - [ ] **REQ-NF030** : [Ex: Couverture de tests > 80%]
66
+ - Métrique : [...]
67
+
68
+ ### Autres
69
+
70
+ - [ ] **REQ-NF040** : [...]
71
+
72
+ ---
73
+
74
+ ## Contraintes
75
+
76
+ ### Contraintes techniques
77
+
78
+ - [ ] **REQ-C001** : [Ex: Compatible Node.js 18+]
79
+ - [ ] **REQ-C002** : [Ex: Pas de dépendance native]
80
+
81
+ ### Contraintes business
82
+
83
+ - [ ] **REQ-C010** : [Ex: Respect RGPD pour les données utilisateur]
84
+ - [ ] **REQ-C011** : [...]
85
+
86
+ ### Contraintes réglementaires
87
+
88
+ - [ ] **REQ-C020** : [...]
89
+
90
+ ---
91
+
92
+ ## Questions
93
+
94
+ ### Questions résolues
95
+
96
+ | # | Question | Réponse | Date |
97
+ |---|----------|---------|------|
98
+ | Q1 | [Question qui a été posée] | [Réponse obtenue] | [Date] |
99
+ | Q2 | [...] | [...] | [...] |
100
+
101
+ ### Questions ouvertes
102
+
103
+ | # | Question | Impact | Assigné à |
104
+ |---|----------|--------|-----------|
105
+ | Q3 | [Question non résolue] | [Bloquant/Non-bloquant] | [Qui doit répondre] |
106
+
107
+ ---
108
+
109
+ ## Priorités
110
+
111
+ ### Must have (obligatoire)
112
+
113
+ - REQ-F001, REQ-F002, REQ-NF001, REQ-C001
114
+
115
+ ### Should have (important)
116
+
117
+ - REQ-F003, REQ-NF010
118
+
119
+ ### Nice to have (bonus)
120
+
121
+ - REQ-NF020
122
+
123
+ ---
124
+
125
+ ## Traçabilité
126
+
127
+ | Requirement | Source | Validé par |
128
+ |-------------|--------|------------|
129
+ | REQ-F001 | Brief section X | [Nom] |
130
+ | REQ-F002 | Discussion [date] | [Nom] |
131
+
132
+ ---
133
+
134
+ _Document généré le [date]_
135
+ _Dernière mise à jour : [date]_
136
+ ```
137
+
138
+ ---
139
+
140
+ ## Guidelines
141
+
142
+ ### Numérotation
143
+
144
+ - **REQ-F*** : Exigences fonctionnelles
145
+ - **REQ-NF*** : Exigences non-fonctionnelles
146
+ - **REQ-C*** : Contraintes
147
+ - Numérotation par dizaines pour pouvoir insérer (001, 010, 020...)
148
+
149
+ ### Exigences fonctionnelles
150
+
151
+ - Formuler avec un verbe d'action : "L'utilisateur peut...", "Le système doit..."
152
+ - Un requirement = une fonctionnalité testable
153
+ - Inclure le critère d'acceptation
154
+
155
+ ### Exigences non-fonctionnelles
156
+
157
+ - Être mesurable quand possible (temps, pourcentage, score)
158
+ - Couvrir : performance, sécurité, accessibilité, maintenabilité
159
+ - Ne pas oublier la scalabilité si pertinent
160
+
161
+ ### Contraintes
162
+
163
+ - Distinguer technique / business / réglementaire
164
+ - Une contrainte est non-négociable (contrairement à un requirement)
165
+ - Être explicite sur l'origine de la contrainte
166
+
167
+ ### Priorités
168
+
169
+ - **Must** : Le package échoue sans ça
170
+ - **Should** : Important mais on peut livrer sans
171
+ - **Nice-to-have** : Bonus si on a le temps
172
+
173
+ ### Questions
174
+
175
+ - Tracker toutes les questions posées pendant le shaping
176
+ - Une question résolue = une décision documentée
177
+ - Une question ouverte = un risque à surveiller
@@ -0,0 +1,134 @@
1
+ # Template: Research
2
+
3
+ Ce template structure la recherche effectuée pour un package.
4
+
5
+ ---
6
+
7
+ ## Structure du document
8
+
9
+ ```markdown
10
+ # Research : [Nom du package]
11
+
12
+ ## Contexte de la recherche
13
+
14
+ [Pourquoi cette recherche ? Quelles questions cherche-t-on à répondre ?]
15
+
16
+ ---
17
+
18
+ ## État de l'art
19
+
20
+ ### Tendances actuelles
21
+
22
+ - [Tendance 1]
23
+ - [Tendance 2]
24
+ - ...
25
+
26
+ ### Technologies émergentes
27
+
28
+ - [Techno 1] : [Description courte]
29
+ - [Techno 2] : [Description courte]
30
+
31
+ ---
32
+
33
+ ## Solutions existantes
34
+
35
+ | Solution | Type | Points forts | Points faibles | Pertinence |
36
+ |----------|------|--------------|----------------|------------|
37
+ | [Nom] | [OSS/SaaS/...] | [+] | [-] | ⭐⭐⭐ |
38
+ | [Nom] | [OSS/SaaS/...] | [+] | [-] | ⭐⭐ |
39
+
40
+ ### Analyse détaillée
41
+
42
+ #### [Solution 1]
43
+
44
+ - **URL** : [lien]
45
+ - **Ce qu'ils font bien** : ...
46
+ - **Ce qu'on peut améliorer** : ...
47
+ - **Applicabilité** : ...
48
+
49
+ #### [Solution 2]
50
+
51
+ ...
52
+
53
+ ---
54
+
55
+ ## Patterns et anti-patterns
56
+
57
+ ### Do's ✅
58
+
59
+ - [Bonne pratique 1]
60
+ - [Bonne pratique 2]
61
+ - [Bonne pratique 3]
62
+
63
+ ### Don'ts ❌
64
+
65
+ - [Anti-pattern 1] : [Pourquoi c'est problématique]
66
+ - [Anti-pattern 2] : [Pourquoi c'est problématique]
67
+ - [Anti-pattern 3] : [Pourquoi c'est problématique]
68
+
69
+ ---
70
+
71
+ ## Insights pour le projet
72
+
73
+ ### Opportunités identifiées
74
+
75
+ 1. [Opportunité 1]
76
+ 2. [Opportunité 2]
77
+
78
+ ### Risques identifiés
79
+
80
+ 1. [Risque 1] - Mitigation : [...]
81
+ 2. [Risque 2] - Mitigation : [...]
82
+
83
+ ### Recommandations
84
+
85
+ - [Recommandation 1]
86
+ - [Recommandation 2]
87
+
88
+ ---
89
+
90
+ ## Sources
91
+
92
+ - [Titre source 1](url)
93
+ - [Titre source 2](url)
94
+ - ...
95
+
96
+ ---
97
+
98
+ _Recherche effectuée le [date]_
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Guidelines
104
+
105
+ ### Contexte de la recherche
106
+
107
+ - Expliquer le "pourquoi" de la recherche
108
+ - Lister les questions auxquelles on cherche à répondre
109
+ - Donner le contexte du projet si pertinent
110
+
111
+ ### État de l'art
112
+
113
+ - Se concentrer sur ce qui est actuel (pas de technos obsolètes)
114
+ - Mentionner les tendances qui impactent le domaine
115
+ - Rester factuel, pas de spéculation
116
+
117
+ ### Solutions existantes
118
+
119
+ - Minimum 3-5 solutions comparées
120
+ - Être objectif sur les points forts ET faibles
121
+ - Utiliser un système de notation simple (étoiles)
122
+ - Inclure au moins une solution open-source si possible
123
+
124
+ ### Do's / Don'ts
125
+
126
+ - Basé sur des retours d'expérience réels
127
+ - Citer les sources quand possible
128
+ - Être actionnable (pas de généralités vagues)
129
+
130
+ ### Insights
131
+
132
+ - Synthétiser ce qui est utile pour LE projet
133
+ - Transformer les constats en recommandations
134
+ - Identifier clairement les risques et leurs mitigations
@@ -0,0 +1,136 @@
1
+ # Template: Stack
2
+
3
+ Ce template structure les choix techniques pour un package.
4
+
5
+ ---
6
+
7
+ ## Structure du document
8
+
9
+ ```markdown
10
+ # Stack : [Nom du package]
11
+
12
+ ## Décision
13
+
14
+ [ ] **Pas de changement** - On utilise la stack existante
15
+ [ ] **Nouvelles technologies** - Détails ci-dessous
16
+
17
+ ---
18
+
19
+ ## Technologies
20
+
21
+ ### Stack existante utilisée
22
+
23
+ | Catégorie | Technologie | Version | Usage dans ce package |
24
+ |-----------|-------------|---------|----------------------|
25
+ | [Runtime] | [Node.js] | [20.x] | [Serveur API] |
26
+ | [Framework] | [Next.js] | [14.x] | [Frontend] |
27
+ | ... | ... | ... | ... |
28
+
29
+ ### Nouvelles technologies (si applicable)
30
+
31
+ | Catégorie | Technologie | Version | Justification |
32
+ |-----------|-------------|---------|---------------|
33
+ | [Catégorie] | [Nom] | [Version] | [Pourquoi ce choix ?] |
34
+
35
+ #### Détail : [Nouvelle techno 1]
36
+
37
+ - **Pourquoi** : [Justification détaillée]
38
+ - **Alternatives considérées** :
39
+ - [Alternative A] : Rejetée car [raison]
40
+ - [Alternative B] : Rejetée car [raison]
41
+ - **Risques** : [Risques identifiés]
42
+ - **Mitigation** : [Comment on gère les risques]
43
+
44
+ ---
45
+
46
+ ## Intégration avec l'existant
47
+
48
+ ### Points d'intégration
49
+
50
+ - [Point 1] : [Comment ça s'intègre]
51
+ - [Point 2] : [Comment ça s'intègre]
52
+
53
+ ### Modifications nécessaires
54
+
55
+ - [ ] [Modification 1]
56
+ - [ ] [Modification 2]
57
+
58
+ ### Compatibilité
59
+
60
+ - **Versions Node.js** : [Versions supportées]
61
+ - **Navigateurs** : [Navigateurs cibles]
62
+ - **Autres** : [Contraintes de compatibilité]
63
+
64
+ ---
65
+
66
+ ## Risques identifiés
67
+
68
+ | Risque | Probabilité | Impact | Mitigation |
69
+ |--------|-------------|--------|------------|
70
+ | [Risque 1] | Faible/Moyen/Élevé | Faible/Moyen/Élevé | [Comment mitiger] |
71
+ | [Risque 2] | ... | ... | ... |
72
+
73
+ ---
74
+
75
+ ## Dépendances externes
76
+
77
+ | Dépendance | Type | Criticité | Fallback |
78
+ |------------|------|-----------|----------|
79
+ | [API externe] | Service | Critique | [Plan B si indispo] |
80
+ | [Lib NPM] | Package | Moyenne | [Alternative] |
81
+
82
+ ---
83
+
84
+ ## Décisions techniques
85
+
86
+ ### [Décision 1]
87
+
88
+ - **Contexte** : [Situation qui nécessite une décision]
89
+ - **Options** :
90
+ 1. [Option A]
91
+ 2. [Option B]
92
+ - **Décision** : [Option choisie]
93
+ - **Raison** : [Pourquoi]
94
+
95
+ ### [Décision 2]
96
+
97
+ ...
98
+
99
+ ---
100
+
101
+ _Document généré le [date]_
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Guidelines
107
+
108
+ ### Décision principale
109
+
110
+ - Toujours commencer par clarifier si on change la stack ou non
111
+ - Si pas de changement, le document peut être court
112
+ - Si changements, détailler chaque nouvelle technologie
113
+
114
+ ### Justification des choix
115
+
116
+ - Chaque nouvelle techno doit avoir une justification claire
117
+ - Lister les alternatives considérées et pourquoi elles sont rejetées
118
+ - Ne pas choisir une techno "parce qu'elle est hype"
119
+
120
+ ### Intégration
121
+
122
+ - Identifier tous les points de contact avec l'existant
123
+ - Lister les modifications nécessaires
124
+ - Anticiper les problèmes de compatibilité
125
+
126
+ ### Risques
127
+
128
+ - Être honnête sur les risques
129
+ - Chaque risque doit avoir une mitigation
130
+ - Ne pas minimiser les risques pour "vendre" une techno
131
+
132
+ ### Dépendances externes
133
+
134
+ - Lister toutes les dépendances critiques
135
+ - Prévoir un fallback pour les services tiers
136
+ - Évaluer la stabilité des dépendances (maintenance active ?)