mdma-cli 1.1.2 → 1.2.0
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.
- package/README.md +7 -10
- package/package.json +1 -1
- package/skills/mdma/EXAMPLES.md +19 -1
- package/skills/mdma/SKILL.md +98 -30
- package/skills/mdma/TEMPLATES.md +21 -2
package/README.md
CHANGED
|
@@ -14,32 +14,29 @@ Cela installe la skill dans `.claude/skills/mdma/` de ton projet.
|
|
|
14
14
|
|
|
15
15
|
## Utilisation
|
|
16
16
|
|
|
17
|
-
### Mode interactif
|
|
17
|
+
### Mode interactif
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
/mdma
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Reponds aux questions, rules generes dans `.claude/rules/`.
|
|
24
|
+
A la fin, propose de sauvegarder ton profil via dialogue fichier (Finder/Explorer).
|
|
24
25
|
|
|
25
|
-
###
|
|
26
|
+
### Importer un profil existant
|
|
26
27
|
|
|
27
28
|
```bash
|
|
28
|
-
|
|
29
|
-
/mdma save MonProfil
|
|
30
|
-
|
|
31
|
-
# Appliquer un profil existant (sans Q&A)
|
|
32
|
-
/mdma MonProfil
|
|
29
|
+
/mdma import
|
|
33
30
|
```
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
Ouvre un dialogue fichier pour selectionner un profil `.md` existant, puis genere les rules sans Q&A.
|
|
36
33
|
|
|
37
34
|
### Workflow recommande
|
|
38
35
|
|
|
39
36
|
1. Lance Claude Code dans ton projet
|
|
40
37
|
2. (Optionnel) Tape `/init` pour generer le contexte projet
|
|
41
|
-
3. Premier projet : `/mdma
|
|
42
|
-
4. Projets suivants : `/mdma
|
|
38
|
+
3. Premier projet : `/mdma` puis sauvegarde ton profil quelque part (cloud, cle USB...)
|
|
39
|
+
4. Projets suivants : `/mdma import` pour reutiliser ton profil
|
|
43
40
|
|
|
44
41
|
## Ce que ça fait
|
|
45
42
|
|
package/package.json
CHANGED
package/skills/mdma/EXAMPLES.md
CHANGED
|
@@ -23,8 +23,18 @@ Ce document montre des exemples de rules files générés par `/mdma`.
|
|
|
23
23
|
|
|
24
24
|
> **Note** : Ce workflow est agnostique. Pour les commandes spécifiques (test, build, lint), consulte `CLAUDE.md` qui fait référence pour ce projet.
|
|
25
25
|
|
|
26
|
+
> **Règle de conformité** : Les règles définies ici et dans `git.md` sont ABSOLUES.
|
|
27
|
+
> - Ne jamais rationaliser ("c'est juste un petit fix", "c'est mineur")
|
|
28
|
+
> - Ne jamais faire d'exception, quelle que soit la taille ou nature du changement
|
|
29
|
+
> - En cas de doute → STOP → demander à l'utilisateur
|
|
30
|
+
|
|
26
31
|
## Étapes obligatoires
|
|
27
32
|
|
|
33
|
+
### 0. Setup Git
|
|
34
|
+
- Vérifie que tu n'es PAS sur `main` : `git branch --show-current`
|
|
35
|
+
- Si sur `main` → créer une branche AVANT toute modification
|
|
36
|
+
- Ne jamais rationaliser ("c'est juste un petit fix")
|
|
37
|
+
|
|
28
38
|
### 1. Plan
|
|
29
39
|
- Explore le codebase (structure documentée dans `CLAUDE.md`)
|
|
30
40
|
- Propose un plan d'implémentation
|
|
@@ -40,7 +50,12 @@ Ce document montre des exemples de rules files générés par `/mdma`.
|
|
|
40
50
|
- Si fail → tente de fixer
|
|
41
51
|
- Max 5 itérations
|
|
42
52
|
- Si toujours fail → **STOP** → demande quoi faire
|
|
43
|
-
|
|
53
|
+
|
|
54
|
+
#### 3.1 Tests visuels (obligatoire si applicable)
|
|
55
|
+
- **Vérifie** si `.claude/rules/visual-test.md` existe
|
|
56
|
+
- Si oui → exécute les tests visuels
|
|
57
|
+
|
|
58
|
+
- Si tous les tests passent → **STOP** → attend validation
|
|
44
59
|
|
|
45
60
|
### 4. Review
|
|
46
61
|
- Review ton propre code
|
|
@@ -67,6 +82,9 @@ Ce document montre des exemples de rules files générés par `/mdma`.
|
|
|
67
82
|
|
|
68
83
|
## Règles absolues
|
|
69
84
|
|
|
85
|
+
> **Anti-rationalisation** : Ces règles n'ont AUCUNE exception. "JAMAIS" signifie jamais.
|
|
86
|
+
> "C'est juste du gitignore" ou "c'est un petit fix" ne justifie PAS de contourner les règles.
|
|
87
|
+
|
|
70
88
|
1. **JAMAIS push sur main**
|
|
71
89
|
2. **JAMAIS commit sans branche** `feature/xxx` ou `fix/xxx`
|
|
72
90
|
3. **JAMAIS branche sans issue GitHub**
|
package/skills/mdma/SKILL.md
CHANGED
|
@@ -10,31 +10,27 @@ Tu configures les préférences de travail d'un agent de code (Claude Code, Curs
|
|
|
10
10
|
|
|
11
11
|
## Modes
|
|
12
12
|
|
|
13
|
-
`/mdma` supporte
|
|
13
|
+
`/mdma` supporte 2 modes :
|
|
14
14
|
|
|
15
15
|
### Mode 1 : `/mdma` (sans argument)
|
|
16
|
-
→ Lance le Q&A interactif, génère les rules
|
|
16
|
+
→ Lance le Q&A interactif, génère les rules, puis propose de sauvegarder le profil via dialogue fichier.
|
|
17
17
|
|
|
18
|
-
### Mode 2 : `/mdma
|
|
19
|
-
→
|
|
20
|
-
|
|
21
|
-
### Mode 3 : `/mdma <nom>`
|
|
22
|
-
→ Cherche `.mdma-profiles/<nom>.md`. Si trouvé, génère les rules directement sans Q&A. Si non trouvé, propose de lancer le Q&A et sauvegarder sous ce nom.
|
|
18
|
+
### Mode 2 : `/mdma import`
|
|
19
|
+
→ Ouvre un dialogue fichier pour sélectionner un profil existant (`.md`), puis génère les rules directement sans Q&A.
|
|
23
20
|
|
|
24
21
|
## Détection du mode
|
|
25
22
|
|
|
26
23
|
1. Regarde l'argument passé à `/mdma`
|
|
27
24
|
2. Si pas d'argument → Mode 1
|
|
28
|
-
3. Si argument = "
|
|
29
|
-
4. Si argument = "<nom>" → Mode 3
|
|
25
|
+
3. Si argument = "import" → Mode 2
|
|
30
26
|
|
|
31
27
|
---
|
|
32
28
|
|
|
33
|
-
## Ta mission (
|
|
29
|
+
## Ta mission (Mode 1)
|
|
34
30
|
|
|
35
31
|
Collecter les préférences de travail du développeur : style de réponse, workflow agent, workflow git.
|
|
36
32
|
|
|
37
|
-
Ensuite, générer les rules files adaptés
|
|
33
|
+
Ensuite, générer les rules files adaptés et proposer de sauvegarder le profil.
|
|
38
34
|
|
|
39
35
|
**Note** : Le contexte projet (stack, structure) est géré par `/init` ou manuellement dans CLAUDE.md. Tu ne génères que les rules.
|
|
40
36
|
|
|
@@ -121,32 +117,75 @@ Tu passes par 4 phases dans l'ordre. Pour chaque phase, tu as un objectif et des
|
|
|
121
117
|
|
|
122
118
|
---
|
|
123
119
|
|
|
124
|
-
##
|
|
120
|
+
## Dialogues fichier natifs
|
|
125
121
|
|
|
126
|
-
|
|
122
|
+
Pour ouvrir un dialogue fichier natif, utilise les commandes suivantes selon l'OS.
|
|
127
123
|
|
|
128
|
-
|
|
129
|
-
2. Si trouvé :
|
|
130
|
-
- Lis le profil
|
|
131
|
-
- Affiche un résumé : "Profil <nom> trouvé : <niveau>, <style>, <git workflow>"
|
|
132
|
-
- Génère les 3 rules files directement
|
|
133
|
-
- Affiche "Rules générées depuis le profil <nom>."
|
|
134
|
-
3. Si non trouvé :
|
|
135
|
-
- Dis : "Profil <nom> non trouvé. Tu veux le créer ?"
|
|
136
|
-
- Si oui → passe en Mode 2 (Q&A + save)
|
|
137
|
-
- Si non → arrête
|
|
124
|
+
### Détection de l'OS
|
|
138
125
|
|
|
139
|
-
|
|
126
|
+
```bash
|
|
127
|
+
OS=$(uname -s)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
| Valeur | OS |
|
|
131
|
+
|--------|-----|
|
|
132
|
+
| `Darwin` | macOS |
|
|
133
|
+
| `Linux` | Linux |
|
|
134
|
+
| `MINGW*` ou `CYGWIN*` | Windows (Git Bash) |
|
|
140
135
|
|
|
141
|
-
|
|
136
|
+
### Commandes par OS
|
|
142
137
|
|
|
143
|
-
|
|
138
|
+
#### macOS (osascript)
|
|
139
|
+
|
|
140
|
+
**Dialogue "Enregistrer sous"** :
|
|
141
|
+
```bash
|
|
142
|
+
osascript -e 'POSIX path of (choose file name with prompt "Sauvegarder le profil mdma" default name "profil.md")'
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Dialogue "Ouvrir"** :
|
|
146
|
+
```bash
|
|
147
|
+
osascript -e 'POSIX path of (choose file of type {"md", "public.plain-text"} with prompt "Sélectionner un profil mdma")'
|
|
148
|
+
```
|
|
144
149
|
|
|
145
|
-
|
|
150
|
+
#### Linux (zenity)
|
|
151
|
+
|
|
152
|
+
**Dialogue "Enregistrer sous"** :
|
|
153
|
+
```bash
|
|
154
|
+
zenity --file-selection --save --filename="profil.md" --title="Sauvegarder le profil mdma" --file-filter="*.md"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Dialogue "Ouvrir"** :
|
|
158
|
+
```bash
|
|
159
|
+
zenity --file-selection --title="Sélectionner un profil mdma" --file-filter="*.md"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
#### Windows (PowerShell)
|
|
163
|
+
|
|
164
|
+
**Dialogue "Enregistrer sous"** :
|
|
165
|
+
```bash
|
|
166
|
+
powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$d = New-Object System.Windows.Forms.SaveFileDialog; \$d.Filter = 'Markdown (*.md)|*.md'; \$d.FileName = 'profil.md'; if (\$d.ShowDialog() -eq 'OK') { \$d.FileName }"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Dialogue "Ouvrir"** :
|
|
170
|
+
```bash
|
|
171
|
+
powershell -command "Add-Type -AssemblyName System.Windows.Forms; \$d = New-Object System.Windows.Forms.OpenFileDialog; \$d.Filter = 'Markdown (*.md)|*.md'; if (\$d.ShowDialog() -eq 'OK') { \$d.FileName }"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Fallback
|
|
175
|
+
|
|
176
|
+
Si la commande échoue (serveur headless, SSH, zenity non installé, etc.) :
|
|
177
|
+
1. Affiche : "Impossible d'ouvrir le dialogue fichier."
|
|
178
|
+
2. Demande le chemin manuellement : "Indique le chemin complet du fichier :"
|
|
179
|
+
3. Valide que le chemin finit par `.md`, sinon ajoute l'extension
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Format du profil
|
|
184
|
+
|
|
185
|
+
Le profil sauvegardé/importé utilise ce format :
|
|
146
186
|
|
|
147
|
-
**Format** :
|
|
148
187
|
```markdown
|
|
149
|
-
# Profil
|
|
188
|
+
# Profil
|
|
150
189
|
|
|
151
190
|
## Personnalité
|
|
152
191
|
- level: <junior|mid|senior>
|
|
@@ -170,7 +209,36 @@ Après le Q&A et avant de générer les rules, sauvegarde le profil :
|
|
|
170
209
|
- testRequired: <true|false>
|
|
171
210
|
```
|
|
172
211
|
|
|
173
|
-
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Mode 1 : Workflow complet (`/mdma`)
|
|
215
|
+
|
|
216
|
+
1. Lance le Q&A interactif (Phases 1-4)
|
|
217
|
+
2. Génère les 3 rules files
|
|
218
|
+
3. Demande : "Tu veux sauvegarder ce profil pour le réutiliser ?"
|
|
219
|
+
4. Si oui :
|
|
220
|
+
- Détecte l'OS avec `uname -s`
|
|
221
|
+
- Exécute la commande "Enregistrer sous" appropriée
|
|
222
|
+
- Si dialogue réussi → écris le profil au chemin retourné
|
|
223
|
+
- Si dialogue échoue → fallback saisie manuelle
|
|
224
|
+
- Assure-toi que le fichier a l'extension `.md`
|
|
225
|
+
- Affiche : "Profil sauvegardé vers <chemin>"
|
|
226
|
+
5. Propose la suppression du skill (voir Nettoyage)
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Mode 2 : Import (`/mdma import`)
|
|
231
|
+
|
|
232
|
+
1. Détecte l'OS avec `uname -s`
|
|
233
|
+
2. Exécute la commande "Ouvrir" appropriée
|
|
234
|
+
3. Si dialogue réussi → récupère le chemin
|
|
235
|
+
4. Si dialogue échoue → fallback saisie manuelle
|
|
236
|
+
5. Lis le fichier profil
|
|
237
|
+
6. Parse les données (format ci-dessus)
|
|
238
|
+
7. Affiche un résumé : "Profil importé : <niveau>, <style>, <git workflow>"
|
|
239
|
+
8. Génère les 3 rules files
|
|
240
|
+
9. Affiche : "Rules générées depuis le profil importé."
|
|
241
|
+
10. Propose la suppression du skill (voir Nettoyage)
|
|
174
242
|
|
|
175
243
|
---
|
|
176
244
|
|
package/skills/mdma/TEMPLATES.md
CHANGED
|
@@ -25,8 +25,18 @@ Le workflow de l'agent, étape par étape.
|
|
|
25
25
|
|
|
26
26
|
> **Note** : Ce workflow est agnostique. Pour les commandes spécifiques (test, build, lint), consulte `CLAUDE.md` qui fait référence pour ce projet.
|
|
27
27
|
|
|
28
|
+
> **Règle de conformité** : Les règles définies ici et dans `git.md` sont ABSOLUES.
|
|
29
|
+
> - Ne jamais rationaliser ("c'est juste un petit fix", "c'est mineur")
|
|
30
|
+
> - Ne jamais faire d'exception, quelle que soit la taille ou nature du changement
|
|
31
|
+
> - En cas de doute → STOP → demander à l'utilisateur
|
|
32
|
+
|
|
28
33
|
## Étapes obligatoires
|
|
29
34
|
|
|
35
|
+
### 0. Setup Git
|
|
36
|
+
- Vérifie que tu n'es PAS sur `main` : `git branch --show-current`
|
|
37
|
+
- Si sur `main` → créer une branche AVANT toute modification
|
|
38
|
+
- Ne jamais rationaliser ("c'est juste un petit fix")
|
|
39
|
+
|
|
30
40
|
### 1. Plan
|
|
31
41
|
- Explore le codebase (structure documentée dans `CLAUDE.md`)
|
|
32
42
|
- Propose un plan d'implémentation
|
|
@@ -43,8 +53,14 @@ Le workflow de l'agent, étape par étape.
|
|
|
43
53
|
- Si le test passe → relance la suite complète
|
|
44
54
|
- Max {workflow.maxTestIterations} itérations
|
|
45
55
|
- Si toujours fail → **STOP** → demande quoi faire
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
|
|
57
|
+
#### 3.1 Tests visuels (obligatoire si applicable)
|
|
58
|
+
- **Vérifie** si `.claude/rules/visual-test.md` existe
|
|
59
|
+
- Si oui → exécute `/screenshot` et compare `current/` vs `baseline/`
|
|
60
|
+
- Différence intentionnelle → mettre à jour `baseline/`
|
|
61
|
+
- Régression détectée → **STOP** → corriger avant de continuer
|
|
62
|
+
|
|
63
|
+
- Si tous les tests passent → **STOP** → attend validation
|
|
48
64
|
|
|
49
65
|
### 4. Review
|
|
50
66
|
- Review ton propre code
|
|
@@ -84,6 +100,9 @@ Le workflow git personnalisé.
|
|
|
84
100
|
|
|
85
101
|
## Règles absolues
|
|
86
102
|
|
|
103
|
+
> **Anti-rationalisation** : Ces règles n'ont AUCUNE exception. "JAMAIS" signifie jamais.
|
|
104
|
+
> "C'est juste du gitignore" ou "c'est un petit fix" ne justifie PAS de contourner les règles.
|
|
105
|
+
|
|
87
106
|
1. **JAMAIS push sur main**
|
|
88
107
|
2. **JAMAIS commit sans branche** `{git.branchFormat}`
|
|
89
108
|
3. **JAMAIS branche sans issue GitHub**
|